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