我的输入就像
4
1 2
3 4
5 6
7 8
我想要做的是将它分成两组。 How to split a full=number into two groups according to their position(even or odd) 我在这里问过。我的答案是正确的。当我和男孩一起检查时[3]; 似乎有一些问题。这是代码,我找不到错误?应该出的是8
#include<fstream>
#include<iostream>
using namespace std;
int main(){
ifstream ifs("Q3_IN.txt");
int g;
ifs>>g;
int boy[g];int girl[g];
int a =0; int b = 0;
for(int i=0;i<g;i++){
if(i%2) ifs>>boy[b++];
else ifs>>girl[a++];
}
cout<<boy[3];
system("pause");
return 0;}
答案 0 :(得分:1)
i < g*2
是您的解决方案。您的输入大小为2 * g但不是g。
答案 1 :(得分:0)
当然,你不需要让它如此复杂。一行上总有两个数字,所以
for(int i=0;i<g;i++){
if(i%2) ifs>>boy[b++];
else ifs>>girl[a++];
}
可以完成:
for(int i=0;i<g;i++){
ifs>>girl[i] >>boy[i];
}
无需检查它是偶数还是奇数,因为你只需要存储每个女孩然后男孩。