For循环不能正常工作

For loop not quite working

本文关键字:工作 常工作 循环 不能 For      更新时间:2023-10-16

这是我第一次尝试for循环,我遇到了一些问题。我正在试着写一个程序,它会询问两支球队每节得多少分,然后显示总得分和获胜的球队。

#include <iostream>
using namespace std;
int main( )
{
    int scoreA = 0;
    int scoreB = 0;
    cout << "This program calculates the average score of 10 tests." << endl;
    for (int counter = 0; counter < 4; counter = counter + 1)
    {
        cout << "Enter Team A's quarterly points: ";
        cin >> scoreA;
        cout << "Enter Team B's quarterly points: ";
        cin >> scoreB;
        scoreA = scoreA + scoreA;
        scoreB = scoreB + scoreB;
    }
    cout << "Team A's Score: " << scoreA << endl;
    cout << "Team B's Score: " << scoreB << endl;
    if (scoreA > scoreB)
    {
               cout << "Team A wins";
               }
    else
    {
        cout << "Team B wins";
        }
    system("pause");
    return 0;
}

你没有明确地说什么不能用循环,但我在你的for循环中看到以下内容:

cout << "Enter Team A's quarterly points: ";
cin >> scoreA;
cout << "Enter Team B's quarterly points: ";
cin >> scoreB;
scoreA = scoreA + scoreA;
scoreB = scoreB + scoreB;

所以你在每次迭代(cin >> scoreA)中覆盖scoreA和scoreB的分数,然后将它们加倍(scoreA = scoreA + scoreA)。

存储分数总和的变量和用户输入的变量应该不同。Do like (read comments):

int sumB=0 , sumB=0; // added this 
for (int counter = 0; counter < 4; counter = counter + 1){
  cout << "Enter Team A's quarterly points: ";
  cin >> scoreA;
  cout << "Enter Team B's quarterly points: ";
  cin >> scoreB;
  sumA = sumA + scoreA;
  sumB = sumB + scoreB;
  //  ^      ^
}

在你的代码中,你正在做的事情,例如scoreA = scoreA + scoreA;cin >> scoreA两个语句在循环期间相互写入效果,scoreB也是如此。

因此相应地更改代码中的下一行,如:

cout << "Team A's Score: " << sumA << endl;
cout << "Team B's Score: " << sumB << endl;
if (sumA > sumB){
  // your code
}
else{
 // your code
}

另外,因为你是c++和SO的新手,我想建议一个链接:权威c++图书指南和列表