Мне было поручено решить следующий вопрос с использованием массива указателей:
Напишите два прототипа для функции, которая упорядочивает список строк в соответствии с
длина строки - от самой короткой до самой длинной. Во-первых, функция должна ожидать
аргумент ввода / вывода, представляющий собой двумерный массив символов, в котором
строки имеют не более STRSIZ символов. Во вторых, функция должна
ожидайте входной / выходной аргумент, который является массивом указателей.
В настоящее время я написал эту кодировку для нее и не могу сказать, почему она не работает должным образом для меня:
int number;
int a;
int b;
char placeholder;
char words[100];
char wordscopy[100];
printf("Enter the amount of words or names you wish to sort (0 - 100) :\n");
scanf_s("%d", &number);
printf("Enter names or words on separate lines\n");
for (a = 0; a < number; ++a)
scanf_s("%s", &words[a]);
for (a = 0; a < number; ++a)
words[a] = wordscopy[a];
for (a = 0; a < number; ++a)
{
for (b = a + 1; b < number; ++b)
{
if (strlen(wordscopy[a]) < strlen(wordscopy[b]))
{
placeholder = wordscopy[a];
wordscopy[a] = wordscopy[b];
wordscopy[b] = placeholder;
}
}
}
printf("\n\n%-30s%5c%-30s\n\n", "Original Order", ' ',"Least Letters to Most Letters");
for (a = 0; a < number; ++a)
printf("%-30s%5c%-30s\n", words[a], ' ', wordscopy[a]);
printf("\n\n");
return 0;
Я довольно новичок в кодировании и не могу понять, почему программа не работает для меня.
Выходные данные должны быть:
Original Order Least Letters to Most Letters
Brad Brad
Matthew Megan
Brandon Brandon
Megan Matthew
Melissa Melissa