我试图在C语言中对这个数组进行排序,但是我没有把它排序好。我做错了什么?排序后的数组是错误的,它应该按照下面的顺序显示:
0: boy
1: is
2: right
3: sitting
4: The
5: there.
谢谢大家!
int n = sizeof(arr) / sizeof(arr[0]);
int i;
// Print the given array
printf("Given array is\n");
for (i = 0; i < n; i++)
printf("%d: %s \n", i, arr[i]);
// Sort the array
sort(arr, n);
// Print the sorted array
printf("\nSorted array is\n");
for (i = 0; i < n; i++)
printf("%d: %s \n", i, arr[i]);
return 0;
}
Output:
Sorted array is
The
boy
is
right
sitting
there.
1条答案
按热度按时间zmeyuzjn1#
我做错了什么?
没什么,你的代码运行正常.
调试这个问题的一个好方法是打印每个单词的第一个字符的值,这将显示'T'、'b'等的值,你会看到A-Z的值比a-z的值小。
换个Angular 来看,如果你想让单词按照问题开头的顺序打印,你就必须对它们进行排序,这样它们就 * 不是 * ASCII顺序了,你需要想出一个
compare
函数,它认为'T'和't'是相同的。