整数排序

来源:互联网 发布:淘宝怎么改默认地址 编辑:程序博客网 时间:2024/05/22 02:15

实现输入一组大于等于0的整数,根据从小到大的顺序排序后输出,排序后有连续数时,只输出连续数中最小和最大的两个数

输入:  
一组大于等于0的整数,不考虑非法输入,各个整数之间以逗号(“,”)分隔, 输入字符串的总长度小于等于100个字节。

输出:  
排序后的值,各个整数之间以空格分隔。

样例输入: 1,4,3,110,2,90,7
                    

样例输出: 1 4 7 90 110


#include<iostream>#include<cstdio>#include<cstdlib>#include<vector>#include<algorithm>#include<string>#include<functional>#include<sstream>#include<set>//#include<cmath>using namespace std;  int result[1000];int main(){   string str;   getline(cin,str);   for(int i=0;i<str.size();i++)   {       if(str[i]==',')   {      str[i]=' ';   }   }   istringstream  in(str);    set<int> tempresult;   int temp;   while(in>>temp)   {        tempresult.insert(temp);   }   set<int>::iterator iter;   int length=0;   for(iter=tempresult.begin();iter!=tempresult.end();iter++)   {      result[length++]=*iter;   }   for(int i=0;i<length;)//游标指针向后移动   {       if(result[i+1]-result[i]!=1)   {       cout<<result[i]<<' ';   i++;   }   else   {       cout<<result[i]<<' ';//连续数的第一个数   while(result[i+1]-result[i]==1)   {      i++;   }   cout<<result[i]<<' ';//连续数的最后一个数   i++;   }   }   return 0;} 


0 0
原创粉丝点击