匹配用户输入并通过数字c ++计算输入

时间:2016-07-26 10:10:53

标签: c++ visual-c++

我的问题是记录用户5个输入并将它们与正确的代码相匹配。 singleperson代码为1,couple代码为2,family为3.因此,用户输入将只是这3个数字。最后我必须计算总数的总和按类别划分的人。我运行代码并得到运行时错误,说变量“组”的堆栈已损坏,并且总是只有5个单身,而夫妇和家庭都是0.对不起,我刚开始上学,我有点模糊......

int singleperson=0;
int couple=0;
int family3=0;

int groups[]={0,0,0,0,0};
cout << "Enter group #1:";
cin >>groups[0];
cout << "Enter group #2:";
cin >>groups[1];
cout << "Enter group #3:";
cin >>groups[2];
cout << "Enter group #4:";
cin >>groups[3];
cout << "Enter group #5:";
cin >>groups[4];
for (int a=0; a<=4;a++)
{
    if(groups[a]=1)
    {
        singleperson= singleperson + 1;
    }
    else if(groups[a]=2)
    {
        couple = couple +1;
    }
    else
    {
        family3= family3+1;
    }
}
cout<<"Statistics"<<endl;
cout <<singleperson<<"Singles"<<endl;
cout<<couple<<"Couples"<<endl;
cout<<family3<<"Families"<<endl;

1 个答案:

答案 0 :(得分:0)

因为group的大小为4而您正试图插入5th位置。正如@ antonio-garrido指出要检查相等性,我们使用===用于分配。

int groups[]={0,0,0,0,0};


for (int a=0 ; a <= 4; a++) {
    if(groups[a] == 1) {
        singleperson= singleperson + 1;
    } else if(groups[a] == 2) {
        couple = couple +1;
    } else {
        family3= family3+1;
    }
}