#include<stdio.h> #include<math.h> #include<string.h> void swapstr(char*,char*); void swapstr(char* a,char* b) { char c[10000]; strcpy(c,a); strcpy(a,b); strcpy(b,c); } int main() { int n; while(~scanf("%d",&n)) { char a[1000][10000]={0}; int nn=n; while(n>0) { n--; scanf("%s",a[n]); } int sum; for(int b=1;b<nn;b++){//从小到大 先排长度 sum=0; while(strlen(a[b-sum])<strlen(a[b-1-sum])) { swapstr(a[b-sum],a[b-1-sum]); sum++; if(b-1-sum<0) { break; } } } for(int b=1;b<nn;b++){ sum=0; while(b-1-sum>=0) { if(strlen(a[b-sum])==strlen(a[b-1-sum])) { if(strcmp(a[b-sum],a[b-1-sum])<0) { swapstr(a[b-sum],a[b-1-sum]); } } sum++; } } for(int b=0;b<nn;b++){ printf("%s\n",a[b]); } } return 0; }
解题思路:
注意事项:
参考代码:
0.0分
2 人评分
永远的丰碑 (C语言代码)浏览:698 |
printf基础练习2 (C语言代码)浏览:648 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:615 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:574 |
sizeof的大作用 (C语言代码)浏览:1591 |
蚂蚁感冒 (C语言代码)浏览:1408 |
1126题解浏览:649 |
1054题解浏览:516 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:571 |
C二级辅导-计负均正 (C语言代码)浏览:523 |