从初始向量中提取数字和为偶数和其他数字和为奇数的向量的程序

问题描述 投票:0回答:0

这是我需要编写的程序文本:编写一个带有两个参数的函数“ExtractElements”,第一个是整数向量(类型“int”),第二个是逻辑值“true”或“错误的”。因此,该函数应返回一个新向量,该向量由数字总和为偶数或奇数的元素组成,具体取决于第二个参数的值为“真”或“假”。新创建的向量中的元素应该与它们在原始向量中的相对顺序相同。在要求首先输入自然数 𝑛 的测试程序中使用编写的函数,然后输入具有整数元素 𝑛 的向量“a”的元素。然后程序应创建两个新向量“b”和“c”,并将向量“a”中的所有数字以偶数位数写入向量“b”,以及向量“a”中的所有数字通过数字的总和将奇数和放入向量“c”中。最后,程序应该在一行打印偶数位的数字,在第二行打印奇数位的数字(如果没有一个符合要求的数字,那么一行可能会留空)财产)。我的程序只是在屏幕上打印零而不是所需的向量。

#include<iostream>
#include<vector>
#include<cmath>

std::vector<int> ExtractElements(std::vector<int>v, bool p)
{
    std::vector<int>even,odd;
    int sum=0,m;
    for(int i=0;i<v.size();i++)
    {
        while(int(i))
        {
            m=i%10;
            sum=sum+m;
            i=i/10;
        }
        if(sum%2==0) 
        {
            even.push_back(i);
        }
        else odd.push_back(i);
    }
    if(p=true) return even;
    if(p=false) return odd;
}
int main()
{
    int n;
    bool parity=true;
    std::vector<int>a,b,c;
    std::cout<<"How many elements do you want to input: ";
    std::cin>>n;
    std::cout<<"Enter elements: ";
    for(int i=0;i<n;i++)
    {
        std::cin>>i;
        a.push_back(i);
    }
    b=ExtractElements(a,parity);
    parity=false;
    c=ExtractElements(a,parity);
    for(int i=0;i<b.size();i++)
    {
        std::cout<<b[i];
    }
    for(int i=0;i<c.size();i++)
    {
        std::cout<<c[i];
    }
    return 0;
}
vector boolean digits parity
© www.soinside.com 2019 - 2024. All rights reserved.