方向是:设计和编码一个程序,询问用户确定平均值的数量。然后提示用户输入整数值并将它们加总。使用适当的随附文本显示数字和计算平均值的总和。平均值应显示为小数点后1位。重复此过程,直到用户输入零(0)作为要平均的值的数量。您可以为主程序循环使用“while”循环或“do ... while”循环。
使用一个函数读取和求和值,使用另一个函数显示总和和平均值。使用“for”循环来读取和求和值。
for循环似乎没有执行,但我无法弄清楚原因。
#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;
int sumNums(int amount, int, int, int);
void displaySum(int sum, int avg);
main()
{
int amount = 0;
cout <<"How many numbers do you wish to average? ";
cin >> amount;
int avg = 0, sum = 0;
while (amount != 0)
{
for (int lim = 0; lim == amount; lim++)
{
int number = 0;
cout <<"Enter a value"<< endl;
cin >> number;
sumNums(amount, number, sum, avg);
displaySum (sum, avg);
}
}
}
int sumNums (int amount, int number, int sum, int avg)
{
sum = sum + number;
avg = sum / amount;
return sum, avg;
}
void displaySum (int sum, int avg)
{
cout <<"The sum is "<< sum <<" and the average is "<< avg << endl;
}
答案 0 :(得分:2)
for (int lim = 0; lim == amount; lim++)
这里你将lim设置为0,只有当amount不是0时才运行代码。在你的for中,只有当lim等于从未发生的数量时才执行。
无论您的条件是什么,对于您想要进行的每次迭代,它都必须评估为真。
最有可能的是,你需要执行直到lim等于金额,这意味着你希望它在lim低于金额的每次迭代中执行。
for(int lim = 0; i < amount; lim++)
答案 1 :(得分:0)
for (int lim = 0; lim == amount; lim++) // so wrong...
更改为
for (int lim = 0; lim < amount; lim++)