如何根据位置(偶数或奇数)将完整=数字分成两组

时间:2013-07-25 12:58:52

标签: c++ arrays

我的输入就像

 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;}

2 个答案:

答案 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];
 }

无需检查它是偶数还是奇数,因为你只需要存储每个女孩然后男孩。