victor hsu 1B Ответов: 1

Почему моя заказанная строка что-то не так


#включить <stdio.h>
#include <stdlib.h>
int compare(char info[][20], int n);
пустое чтение();
void swap(char *ap, char *bp);
тап_п()
{
читать();

возвращает 0;
}
пустое чтение()
{
int n,c;
printf("введите, сколько имен вы хотите отсортировать.\n");
scanf("%d", &n);
printf("пожалуйста, введите имена %d.\n", n);
char *info[n][20];

for(c=0;c<n;c++) //хранить входные данные в массиве
{
scanf("%s", info[c]);
}

printf("введенные строки:\n");
для(c=0;c<n-1;c++)
{
printf("%s\n",info[c]);
}
сравнить(информация,n);
printf("упорядоченные строки:\n");
для(c=0;c<n;c++)
{
printf("%s\n",info[c]);
}
}
int compare(char info[][20], int n)
{
int c = 0;
char *ap;
ap = информация[c];

char *bp;
bp = информация[c+1];
int y = 0;
printf("%s, %s", ap, bp);
для(y = 0; y < n; y++)
{

while(*ap == *bp)
{
если (*ap == '\0' && *bp == '\0')
{
возвращает 0;
перерыв;
}
АР++;
кровяное давление++;
}
если (*ap < *bp)
{
возврат 1;
}
если (*ap > *bp)
{
своп(ap, bp);
возврат -1;
}
}
если (*ap < *bp)
{
возврат 1;
}
если (*ap > *bp)
{
своп(ap, bp);
возврат -1;
}
}


void swap(char *ap, char *bp)
{

char tmp;
int x = 0;
while(*ap != '\0' || *bp != '\0')
{

tmp = *ap;
*ap = *bp;
*bp = tmp;
АР++;
кровяное давление++;
}
}

Что я уже пробовал:

попробуйте напечатать что-то в коде, но все еще не знаете, как это исправить.

Nakhia_ind

сэр здесь нет размера в первом int compare(char info[][20], int n);
означает, что будет int compare(char info[2][20], int n);

1 Ответов

Рейтинг:
2

Patrice T

Цитата:
Почему моя заказанная строка что-то не так

Так... это уже шестой вопрос на ту же тему.
Вам неоднократно давали советы о том, что делать и что не так в вашем коде, но вы все еще не применяете эти советы. Какого ответа вы ожидаете, если вам еще не сказали?
Цитата:
попробуйте напечатать что-то в коде, но все еще не знаете, как это исправить.

Поскольку у вас нет магических способностей, вам нужно прибегнуть к классическим техникам:
- Гадать и делать случайные изменения, как вы уже заметили, не эффективно.
- сдаваться.
- Платить кому-то, чтобы он выполнил свою работу.
- Обучающий инструмент, который поможет вам найти то, что не так, этот инструмент является отладчиком.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что он делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.