整数排序【编程】

来源:互联网 发布:傲慢与偏见与僵尸 知乎 编辑:程序博客网 时间:2024/06/05 15:35

题目:

         输入任意多个整形数字(不重复),中间以逗号隔开,然后排序,然后在排序中只取连续部分的开始和结尾部分,然后输出,以逗号隔开。

         例子:

                 输入       1,4,7,90,110,3,2

                 输出       1 4 7 90 110


搞不懂,在华为软件训练平台上无法答案一直不正确,特贴出,备份!



答案:

#include <iostream>#include <string.h>#include <vector>#include <algorithm>using namespace std;#define M 1000void DelMiddle(vector<int> &v, vector<int> &dest_num){    int cont = 0;    for (int i=0; i<v.size(); i++)    {        if (v[i]+1 == v[i+1] && i+1 != v.size())        {        cont++;        if (cont >=2)        continue;        dest_num.push_back(v[i]);//w[j++] = v[i];        }        else        {        dest_num.push_back(v[i]);//w[j++] = v[i];        cont = 0;        }    }}void PrintVec(vector<int> vec){    for(int i=0; i<vec.size(); i++)        if(i == vec.size()-1)        cout<<vec[i];        else cout<<vec[i]<<' ';    cout<<endl;}int main(){    char str_src[M] = {'\0'};    cin>>str_src;    vector<int> value_can;    vector<int> value_result_can;    char *pstr_src = strtok(str_src, ",");    while(pstr_src != NULL)    {        value_can.push_back(atoi(pstr_src));        pstr_src = strtok(NULL, ",");    }    sort(value_can.begin(), value_can.end());    DelMiddle(value_can, value_result_can);    PrintVec(value_result_can);    return 0;}


  

原创粉丝点击