数字
时间限制: 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<stdlib.h> #include<string.h> char a[11000]; int b[110]; int cmp(const void *a,const void *b) {return *(int *)a-*(int *)b; } int main() {int i,k,s;scanf("%d",&s);while(s--){bool flag=false;scanf("%s",a);k=0;memset(b,0,sizeof(b));for(i=0;a[i]!='\0';){if(a[i]=='0')i++;else{while(a[i]!='0'&&a[i]!='\0'){b[k]=b[k]*10+a[i]-'0';i++;flag=true;}k++;}}if(!flag) printf("0\n");else{qsort(b,k,sizeof(b[0]),cmp);for(i=0;i<k;i++)printf("%d ",b[i]);printf("\n");}}return 0; }
- 输入有n组数据