该程序必须将奇数索引元素放入新的向量C中,而将偶数索引元素放入另一个向量T中

时间:2019-02-06 23:16:47

标签: c++

我必须编写一个程序,在输入向量v[n]的元素之后,该程序必须将奇数索引元素放入新的向量C中,而偶数索引元素放入另一个向量向量T。该代码似乎可以工作,但结果不完整。它在两个向量上只显示一个元素。

#include <iostream>
using namespace std;

int main() {

    int el,c[100],t[100],count=0, count1=0,v[100];
    cout<<"How many elements : \n"<<endl;
    cin>>el;
    for(int i=0;i<el;i++){
        cout<<"Enter element "<<i+1<<" "<<endl;
        cin>>v[i];
    }
    for(int i=0,j=0,z=0;i<el;i++){
        if(v[i]%2==0){
            count++;
            c[j]=v[i];
            j++;
        }
        else{
            t[z]=v[i];
            count1++;
            z++;
        }
    }
    cout<<"Odd vector "<<endl;
    for(int j=0;j<count;j++){
        cout<<"Elements"<<"     "<<c[j]<<endl;
    cout<<"Even vector "<<endl;
    for(int z=0;z<count1;z++){
        cout<<"Elements "<<"     "<<t[z]<<endl;
        return 0;
    }
    }
}

预期结果:
示例:我给v[]={3,5,7,8,9,6}

程序应给出以下结果:

Odd elements
3  7  9
Even elements
5  8  6

实际结果是:

Odd elements 
8
Even elements 
3

1 个答案:

答案 0 :(得分:0)

打印结果时花括号不正确

cout<<"Odd vector "<<endl;
for(int j=0;j<count;j++){
    cout<<"Elements"<<"     "<<c[j]<<endl;
cout<<"Even vector "<<endl;
for(int z=0;z<count1;z++){
    cout<<"Elements "<<"     "<<t[z]<<endl;
    return 0;
}
}

应该是

cout<<"Odd vector "<<endl;
for(int j=0;j<count;j++)
    cout<<"Elements"<<"     "<<c[j]<<endl;
cout<<"Even vector "<<endl;
for(int z=0;z<count1;z++)
    cout<<"Elements "<<"     "<<t[z]<<endl;
return 0;

您拥有return 0;的方式是在第二个for循环内,它在第一个for循环内,因此这两个循环在程序退出前仅输出一个数字。