#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语言程序设计教程(第三版)课后习题9.2 (Java代码)浏览:608 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:780 |
The 3n + 1 problem (C语言代码)浏览:548 |
1025题解浏览:732 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:467 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:521 |
1202题解浏览:610 |
三进制小数 (C语言代码)浏览:812 |
半数集问题 (C语言代码)浏览:920 |
整数分类 oj上总是wrong answer浏览:663 |