数字
时间限制:1000 ms | 内存限制:65535 KB
难度:0
- 描述
- 有一行数字 ,现在定义 0表示空格,即这行数字被分割成若干个数 要求将这些数按照从小到大顺序排列,若该行数字全为零 则表示为零,两个数字之间可能有多个0,开头和结尾可能都有0,所有的0都看成空格,数字的个数不超过100。
- 输入
- 输入有n组数据
每组数据都有一行数字(每个数在整形范围内)
- 输出
- 输出0或去掉多余空格的数据
- 样例输入
-
4 000 00123 12301 1230
- 样例输出
-
0 123 1 123 123
- 来源
- 原创
-
上传者
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int main() { int test,i,j,len,k,ans,t,c,a[1000],b[1000]; char s[1000]; scanf("%d",&test); while(test--) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); scanf("%s",s); len=strlen(s); for(i=0;i<len;i++) b[i]=s[i]-'0'; //注意要处理字符串。。。 for(i=0,t=10,j=0;i<len;) { k=1; ans=0; c=i; while(b[c]!=0) { ans=b[c]+ans*t; k++; c++; } if(k!=1) { a[j]=ans; j++; } i+=k; } sort(a,a+j+1); if(a[j]==0) printf("0\n"); else{ for(i=1;i<j;i++) { printf("%d ",a[i]); } printf("%d\n",a[j]);} } return 0; }
时间: 2024-10-12 14:08:21