我的问题是记录用户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;
答案 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;
}
}