排序
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 42873 Accepted Submission(s): 12307
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
0051231232050775
0 77 12312320
主要是把数字取出来
去以为ans乘10加那数
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; int main() { char a[1015]; int b[1010]={0}; while(gets(a)) { memset(b,0,sizeof(b)); int k=strlen(a); int i=0; int ans=0; int t=0; for(i = 0; i < k&&a[i] == '5';i++); for(;i<k;i++) { if(a[i]=='5') { b[t++]=ans; ans=0; int j=1; for(j = i+1; j < k && a[j] == '5'; j++); i=j-1; } else if(a[i]>='0'&&a[i]<='9') { ans=ans*10+(a[i]-'0'); if(i==k-1) { b[t++]=ans; } } } sort(b,b+t); for(int i=0;i<t-1;i++) printf("%d ",b[i]); printf("%d\n",b[t-1]); memset(a, 0, sizeof(a)); } return 0; }