错误变量在 for..圈
Wrong variable in for...loop
我知道
这不是一个很棒的标题,但我不知道如何措辞。无论如何,简而言之,我正在尝试计算分数的数量,分数的总和分数以及分数的平均和等级。我正在使用...循环以完成此任务。所以。。。我的函数原型:
int validateNumber(int);
void summary(int,int,float,char);
char getGrade(float);
float getAvg(int,int);
可能只有 validateNumber(int) 在这里是相关的,但以防万一。
主()
int num, total, scores;
cout << over4 << "How many scores do you want to average? " << endl;
cout << over4 << "Enter a value from 1 to 4: ";
cin >> num;
和调用(?
total = validateNumber(num);
summary(num,total,average,grade);
然后是定义:
int validateNumber(int num)
{
int total = 0, score;
while (num < 1 || num > 4)
{
cout << over3 << num << " is not between 1 and 4! Try again: ";
cin >> num;
}
system("CLS");
for (int i = 1; i <= num; i++)
{
cout << over3 << "Enter score " << i << ": " << endl;
cout << over3 << "Enter a value from 0 to 100: ";
cin >> score;
while (score < 0 || score > 100)
{
cout << over3 << score << " is not between 0 and 100! Renter the score: "
<< i << ": ";
cin >> score;
}
total += score;
}
return total;
}
和:
void summary(int num,int total,float average,char grade)
{
cout << over4 << "Number of scores : " << num << endl;
cout << over4 << "Scores total : " << total << endl;
cout << over4 << "Average : " << average << "%" << endl;
cout << over4 << "Grade : " << grade << endl;
cout << down11;
}
当用户输入介于 1 和 4 之间的 num 值时,没有问题,程序按预期工作。但是,当用户输入不在该范围内的 num 值时,该函数将按预期工作,但摘要会告诉我分数的数量是第一个错误值,结果弄乱了我的平均/成绩。
在您的函数中,您是通过值而不是通过引用传递的,因此在函数int validateNumber(int);
中完成的更改仅在该函数的作用域内,在 num 的值之外与第一个相同。 您应该通过引用发送值。 这样:
int validateNumber(int &);
发生的情况是按值将 num 传递给 validateNumber 函数。validateNumber 函数中的本地 num 复制全局 num 的值并相应地进行处理。但是,全局 num 变量保持不变。为了更改 num 本身,您必须通过引用传递它。 将函数定义的参数更改为:int validateNumber(int &num) { ... }
相关文章:
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 与 for 循环中的变量混淆
- 如何使用将字符串拆分为 for 循环中的变量的程序
- 在变量声明中使用 for 循环
- C++ Code 在 for 循环期间不会累积变量中的总和,仅提供最终迭代值
- 在 for 循环中更新两个变量时遇到问题C++
- 在 c++ 中基于范围的 for 循环中使用引用作为控制变量
- 为什么当我没有变量或其他任何命名的东西时"no match for 'operator==' "错误?
- 是否可以禁止在for循环体内部修改循环变量
- (C++)for循环中的空初始语句是否保存所有编译器中变量的上一次初始化
- 使用 for 循环并将更改命令作为变量
- 更新 for 循环中的变量
- 从 for 循环的每次迭代创建一个新变量
- 在循环中重新声明 for 循环变量时出错
- 如何将变量从 for 循环中移出?
- 将多个计算放入使用基于迭代次数的变量的 for 循环中
- C :用sizeof()operator在for for loop中增加一个int变量,只能工作一次
- 在 for 循环中使用变量,导致段错误
- 为什么 for 循环不能定义两个作用域的变量?
- 如何 for 循环类变量数组