首页 > 解决方案 > 程序必须将奇数索引元素放在一个新向量 C 中,将偶数索引元素放在另一个向量 T 中

问题描述

我必须编写一个程序,在输入向量的元素后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

标签: c++

解决方案


打印结果时您的大括号不正确

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 循环内,所以两个循环在你的程序退出之前只打印一个数字。


推荐阅读