解题思路:
注意事项:
对于题目中提到的可能有多组输入,可以用while(scanf("%d",&n)!=EOF)解决;
题目中还提到每个字符串以‘\n’结束,说明其中可能会含有空格,不能用scanf函数进行输入,应该用gets函数进行输入。
参考代码:
#include<stdio.h>
#include<string.h>
int main(){
int n;
char str[1000][1000];
int sum;
char temp[1000];
while (scanf("%d", &n) != EOF) {
getchar(); //用来清楚缓存区的回车
sum = 0; //重置sum,保证每次循环sum都从0开始计起
for (int i = 0; i < n; i++) {
gets(str[i]); //输入字符串
sum++; //记录输入的字符串的个数
if (strcmp(str[i], "stop")==0) { //判断每次输入的字符串是不是stop
sum = sum - 1; //如果是stop,又因为不会输出stop,所以字符串的总数要减少一个
break; //结束本次循环
}
}
for (int i = 0; i < sum; i++) {
for (int i = 0; i < sum-1; i++) {
int len1 = strlen(str[i]); //根据各字符串的长度对字符串进行排序
int len2 = strlen(str[i+1]);
if (len1 > len2) {
strcpy(temp,str[i]);
strcpy(str[i],str[i+1]);
strcpy(str[i+1],temp);
}
}
}
for (int i = 0; i < sum; i++) {
printf("%s\n",str[i]); //直接输出排序好的字符串
}
}
return 0;
}
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:287 |
输出正反三角形 (C语言代码)浏览:859 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:634 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:573 |
C语言训练-数字母 (C语言代码)浏览:670 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:564 |
C语言程序设计教程(第三版)课后习题6.6 (C++代码)浏览:649 |
【计算球体积】 (C语言代码)浏览:1158 |
C二级辅导-统计字符 (C语言代码)浏览:514 |
数组输出 (C语言代码)浏览:749 |