【发布时间】:2014-09-12 19:09:26
【问题描述】:
所以设计问题是:
输入 3 个数字并显示最大的。继续输入 3 个数字的集合,直到用户想要退出。求所有最大数的平均值。
所以输入数字可以正常工作,但是当我尝试插入 SENTINEL 值以停止循环时,我需要为所有 3 个数字输入它,但它并没有给我过去输入的数字的正确平均值.
非常感谢您的帮助,感谢您的宝贵时间!
#include <iostream>
using namespace std;
int main()
{
const int SENTINEL = -1;
int num1;
int num2 = 0;
int num3 = 0;
int largest;
int sum;
int count;
float average;
// initialize the count and sum
count = 0;
sum = 0;
while (num1 != SENTINEL)
{
// Prompt user for the first number or to quit
cout << "If you want to quit enter " << SENTINEL << " to stop\n " << endl;
cout << "Enter first number ";
cin >> num1;
// Prompt the user for the second number
cout << "please enter second number ";
cin >> num2;
// Prompt the user for a third number
cout << "please enter the third number ";
cin >> num3;
// Compare numbers 1 and 2 for the largest number
if (num1 > num2)
{
largest = num1;
}
else
{
largest = num2;
}
// Compare largest to last number input
if (num3 > largest)
{
largest = num3;
}
// Display the largest number
cout << "largest number is: " << largest << endl;
// Increment the count
count++;
}
if (count > 0)
{
average = sum / count;
cout << "Average of the numbers is " << average;
}
return 0;
}
【问题讨论】:
-
你在使用之前没有初始化
num1,导致undefined behavior。你也不要增加总和。 -
我将更改它以初始化 num1 谢谢我意识到我尚未添加以增加总和但代码不完整问题我正在分段执行并对其进行测试并卡在了这个部分..