C++数组排序

mklgxw1f  于 2022-12-17  发布在  其他
关注(0)|答案(1)|浏览(204)

我试图在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.
zmeyuzjn

zmeyuzjn1#

我做错了什么?
没什么,你的代码运行正常.
调试这个问题的一个好方法是打印每个单词的第一个字符的值,这将显示'T'、'b'等的值,你会看到A-Z的值比a-z的值小。
换个Angular 来看,如果你想让单词按照问题开头的顺序打印,你就必须对它们进行排序,这样它们就 * 不是 * ASCII顺序了,你需要想出一个compare函数,它认为'T'和't'是相同的。

相关问题