1 条题解
-
0
C :
#include <stdio.h> #include <string.h> struct Ch { char str[100]; int l; }; int main() { void sort(struct Ch a[],int m); struct Ch a[1000]; int i,n,m; char b[5]={"stop"}; while (scanf ("%d",&n)!=EOF) { m=0; getchar(); for (i=0;i<n;i++) { gets(a[i].str); if (strcmp(b,a[i].str)==0) break; m++; a[i].l=strlen(a[i].str); a[i].str[a[i].l]='\0'; } sort(a,m); for (i=0;i<m;i++) puts(a[i].str); } return 0; } void sort(struct Ch a[],int m) { int i,j; struct Ch t; for (i=0;i<m-1;i++) for (j=0;j<m-1-i;j++) if (a[j].l>a[j+1].l) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }
C++ :
//我这个是ac了的 #include <iostream> #include <string> using namespace std; typedef struct{ string str; int len; }Sqstack; //随便取得名字 int main() { int n; Sqstack *a[1000]; while(cin>>n){ if(n==0) return 0; cin.ignore();//后面有getline函数一定要ingnore string s; for(int i=0;i<n;i++) { getline(cin,s); if(s=="stop") { n=i; break; } else{ a[i]=new Sqstack; a[i]->str=s; a[i]->len=s.length(); } }//(for) Sqstack *b; for(int i=0;i<n;i++) for(int j=0;j<(n-1);j++) { if((a[j]->len)>(a[j+1]->len)) { b=a[j]; a[j]=a[j+1]; a[j+1]=b; } } for(int i=0;i<n;i++) { cout<<a[i]->str<<endl; } }//(while) return 0; }
- 1
信息
- ID
- 541
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者