我必须编写一个程序,在输入向量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
答案 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循环内,因此这两个循环在程序退出前仅输出一个数字。