定义个容器存储100个整形数,这个数据用随机数函数生成并且存储在容器中, 用相关的算法把奇数和偶数分开存储在不同的容器, 并且对两个容器中的数据进行奇数升序排序,偶数降序排序,最后写入文件!

首先先放出实现代码!

#include <iostream>
#include <vector>
#include <time.h>
#include<algorithm>
#include <fstream>
#include"ostream"
#include<string.h>
using namespace std;
vector<int> v;
vector<int> a;
vector<int> b;
bool fun(const int &data)
{
    return  data%2==0;
}
int main()
{
    srand((unsigned)time(NULL));


        int i=0;
    for( i = 0; i < 100; i++ )
    {
                 v.push_back( rand()%100 );//把元素一个一个存入到vector中
    }
      cout<<"全部的数字"<<endl;
     for( i = 0; i < v.size(); i++ )//v.size() 表示vector存入元素的个数
     {

        cout << v[ i ] << " "; //把每个元素显示出来

     }
     cout<<endl;
     cout<<endl;
     //计算能被2整除的数个数
      int size3 =count_if(v.begin(),v.end(),fun);
      cout << "计算能被2整除的数个数"<<size3<< endl;

     for( i = 0; i <v.size(); i++ )//v.size() 表示vector存入元素的个数
     {
        if(i%2==0)
        {
                  a.push_back(i );//把元素一个一个存入到vector中

        }
        else
        {
             b.push_back(i );//把元素一个一个存入到vector中
        }

     }
      cout<<"a的数字"<<endl;
      cout<<endl;
     for( i = 0; i < a.size(); i++ )//v.size() 表示vector存入元素的个数
     {

        cout << a[ i ] << " "; //把每个元素显示出来

     }
     cout<<endl;
     cout<<endl;

     //排序后a的数字
     cout<<"排序后a的数字"<<endl;
       sort(a.begin(), a.end());
       for(vector<int>::iterator it=a.begin(); it!=a.end(); it++){
           cout<<*it<<" ";
       }

     cout<<endl;
     cout<<endl;
     cout<<"b的数字"<<endl;
     cout<<endl;
    for( i = 0; i < a.size(); i++ )//v.size() 表示vector存入元素的个数
    {

       cout << b[ i ] << " "; //把每个元素显示出来

    }
    //逆向排序:按照从大到小的顺序进行排序
    //b的降序
    cout<<endl;
    cout<<endl;
    //排序后b的数字
    cout<<"排序后b的数字"<<endl;
       sort(b.rbegin(), b.rend());
       for(vector<int>::iterator it=b.begin(); it!=b.end(); it++){
           cout<<*it<<" ";
       }
       cout<<endl;
       //写文件
          try{
              ofstream out("./a.txt");
              for(int n:a)
              {
                  out<<n<<" ";
              }
              out.close();
              ofstream outb("./b.txt");
              for(int n:b)
              {
                  outb<<n<<" ";
              }
              outb.close();
          }catch(exception& e)
          {
              cout<<e.what()<<endl;
          }


    return 0;
}

下面是运行结果;

做题思路:

1.首先先定义三个容器a,b,v存放相应的数据。a存放的是偶数数据,b存放的是奇数数据。v存放的是100个随机数全部数据。

2.利用 STL库的count_if函数去奇数有多少个数据是能被2整除的。

3.利用for循环遍历v容器,满足被2整除的就写入a容器,否则写入b容器。

4.利用STL库的sort函数去对a,b容器的内容进行升序和降序

5.最后,利用枚举遍历方式。分别写入文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值