我需要for循环在程序中执行4次,然后在第四次退出并给出结果的总和。
它不应该把X视为一个被宠坏的投票
三个总数和被破坏的投票数被初始化为0.
现在有一个for循环,从1到投票站的数量。
在这个循环中是一个while循环。屏幕上出现提示消息,询问 他或她想投票的候选人的选民。然后输入选民的选择。
while循环内部是一个switch语句,用于递增正确的总数。默认 选项用于计算被破坏的投票数量。
输入X作为选择时退出while循环。
退出for循环时,会显示三个总计和损坏的投票数。
这是我的代码
int main()
{
const int NR_VOTING_STATIONS = 4;
int votesForA, votesForB, votesForC, spoiltVotes;
char vote;
// initialise totals
votesForA = 0;
votesForB = 0;
votesForC = 0;
spoiltVotes = 0;
// LOOP of INTEREST START
//loop over the voting stations
for ( int i = 1; i <= NR_VOTING_STATIONS; i++)
{
//loop over voters
while (vote != 'X')
{
cout << "Vote for candidate A, B or C : " << endl;
cin >> vote;
switch(vote)
{
case 'A':
votesForA++;
break;
case 'B':
votesForB++;
break;
case 'C':
votesForC++;
break;
default:
spoiltVotes++;
}
}
}
// LOOP of INTEREST END
//display results
cout << endl << endl;
cout << "Total candidate A : " << votesForA << endl;
cout << "Total candidate B : " << votesForB << endl;
cout << "Total candidate C : " << votesForC << endl;
cout << "Total spoilt votes: " << spoiltVotes << endl;
system("pause");
return 0;
}
由于
答案 0 :(得分:1)
只需添加switch
:
case 'X':
break;
因为while条件在下一轮之前不会执行。
答案 1 :(得分:1)
如果问题是
它不应该把X视为一个被宠坏的投票
答案是添加一个案例:
case 'X':
break;
答案 2 :(得分:1)
另外,请小心首先初始化投票,或使用do {} while()而不是while {}
答案 3 :(得分:0)
如果你需要for循环执行四次,为什么不将它包围在另一个for循环中呢?
答案 4 :(得分:0)
在while循环中,您应该检查该轮询中的选民是否仍然可用。由于您在输入“X”处于中立状态,因此应将其添加为交换机中的一个案例。
您的新while循环应如下所示:
Voters_Still_Present = 1;
while (Voters_Still_Present)
{
cout << "Vote for candidate A, B or C : " << endl;
cin >> vote;
switch(vote)
{
case 'A':
votesForA++;
break;
case 'B':
votesForB++;
break;
case 'C':
votesForC++;
break;
case 'X':
//do nothing
break;
default:
spoiltVotes++;
}
/* Here, find out if voters are still available in the present station.
If yes, Voters_Still_Present = 1; else Voters_Still_Present = 0;
*/
}