思路
- 得到数据个数
- 将字符串存到二维数组中
- 通过strcmp循环比较字符串大小
- 如果前1个大于后1个则交换位置
- 输出调整顺序后的数据
题解
#include <stdio.h>
#include <string.h>
int main()
{
int n;
//得到数据个数
scanf("%d", &n);
char str[n][101];//含'\0'
//将字符串存到二维数组中
for (int i = 0; i < n; i++)
scanf("%s", str[i]);
char tmp[101];
//通过strcmp循环比较字符串大小
for (int i = 0; i < n; i++)
{
for (int j = i+1; j <n; j++)
{
//如果前1个大于后1个则交换位置
if (strcmp(str[i], str[j]) > 0)
{
strcpy(tmp, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], tmp);
}
}
}
//输出调整顺序后的数据
for (int i = 0; i < n; i++)
printf("%s\n", str[i]);
return 0;
}