整数排序问题
描述:根据依次输入的数字,按从大到小的排序
运行时间限制:10s
内存限制:128MByte
输入:一行正整数,其长度小于4096,整数之间用非数字隔开
输出:排序后的整数,一个空格隔开
样例输入:8 7R9T2H5 3
样例输出:9 8 7 5 3 2
分析:此题比较简单,使用字符串及排序呢算法即可,使用C++同时要注意空格问题
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
bool compare(int a,int b)
{
return a>b;
}
int main(){
int a[30]={0};
char str[200];
cin.getline(str,200); //使用cin,有空格便结束
bool flag=0;
int i=0,j=0;
int s=0;
char a1;
int c=0;
int num=strlen(str);
for(i=0;i<num;){
while(str[i]>='0' && str[i]<='9' &&i<num ){
s=s*10+int(str[i])-int('0');
i++;
flag=1;
}
if(flag==1){
a[j++]=s;
s=0;
flag=0;
}
i++;
}
i=0;
sort(a,a+j,compare);
while(i<j){
cout<<a[i]<<" ";
i++;
}
cout<<endl;
return 0;
}

浙公网安备 33010602011771号