排序
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 41692 Accepted Submission(s): 11951
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
0051231232050775
0 77 12312320
注意:这道题主要是思路。其实在输出的时候打上空格就可以了,不必要直接打。
另外,char型变为int型要减去'0'。还有一定到清零,学习调试后发现要是不清零是随机给的数。还有就是在一开始要排除开头都是5的情况。
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int a[1100];
char str[1100];
while(gets(str)){
int i,k=0;
memset(a,0,sizeof(a));
for(i=0;i<strlen(str);i++){
if(str[i]!='5') break;
}
for(;i<strlen(str);i++){
if(str[i]!='5'){
for(;i<strlen(str)&&str[i]!='5';i++){
a[k]=a[k]*10+str[i]-'0';
}
k++;
}
}
sort(a,a+k);
for(i=0;i<k-1;i++){
printf("%d ",a[i]);
}
printf("%d\n",a[k-1]);
}
return 0;
}