在主函数中输入10个等长的字符串用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串
在主函数中输入10个等长的字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。
点我看视频讲解+可运行代码,记得收藏视频,一键三连
解题思路: 排序方式与数字比较没什么不同,先遍历比较找出最大的字符串,与第一个字符串进行交换,然后剩下的进行比较找出最大的字符串与第二个交换....
需要主机的就是字符串的比较采用strcmp接口,返回值大于0表示第一个字符串大于第二个字符串
答案:
#include<stdio.h>
#include<string.h>
void sort(char s[10][32])
{
int i, j;
for (i = 0; i < 10; i++){
for (j = i; j < 10; j++){
if (strcmp(s[i], s[j])> 0){
char tmp[32];
strcpy_s(tmp, 32, s[i]);
strcpy_s(s[i], 32, s[j]);
strcpy_s(s[j], 32, tmp);
}
}
}
}
int main()
{
char str[10][32];
printf("Please enter ten strings:\n");
for (int i = 0; i < 10; i++){
scanf_s("%s", str[i], 32);
}
sort(str);
printf("\n");
for (int i = 0; i < 10; i++){
printf("%s\n", str[i]);
}
system("pause");
return 0;
}