我正在做一个while循环。循环的目的是取所有正数并计算平均值。它大部分时间起作用,但并不总是起作用。有人能帮忙吗?以下是代码:
double count = 0;
int sum = 0;
int input = -1;
while (input != 0)
{
Console.Write("Enter a number: ");
input = int.Parse(Console.ReadLine());
if (input > 0)
{
sum += input;
count++;
}
if (input < 0)
{
Console.Write("Enter a number: ");
input = int.Parse(Console.ReadLine());
}
}
if (input == 0)
{
Console.Write($"Average of all positive numbers is: { (sum += input) / count:0.00} ");
}发布于 2022-09-28 14:31:00
第二个如果是多余的,它应该像这样工作
while (input != 0) {
Console.Write("Enter a number: ");
input = int.Parse(Console.ReadLine());
if (input > 0)
{
sum += input;
count++;
}
}您的问题是,当您输入一个负数时,它给了您输入另一个数字的选项,但随后您输入了while循环的一个新的迭代,它要求您输入另一个数字。删除第二个if应该解决您的问题。希望我有所帮助:)
发布于 2022-09-28 14:41:12
当输入非数字数据时,此代码不会引发异常。
int count = 0;
long sum = 0;
int input;
Console.Write("Enter a number: ");
while (int.TryParse(Console.ReadLine(), out input))
{
Console.Write("Enter a number: ");
if (input > 0)
{
sum += input;
count++;
}
}
Console.Write($"Average of all positive numbers is: {sum} / {Math.Max(count,1.0)} = {Math.Round( sum / Math.Max(count,1.0), 2)}.");https://stackoverflow.com/questions/73883068
复制相似问题