在下面的C#程序中,我应该使用哪个循环来获得正确的结果
在下面的程序中,我知道发生了什么,但不知道应该使用哪个循环。这是密码。谢谢你的帮助 如果您需要更多信息来理解我的问题,请告诉我在下面的C#程序中,我应该使用哪个循环来获得正确的结果,c#,loops,average,C#,Loops,Average,在下面的程序中,我知道发生了什么,但不知道应该使用哪个循环。这是密码。谢谢你的帮助 如果您需要更多信息来理解我的问题,请告诉我 using System; // Write a C# program that takes x numbers as input to calculate and print the average. class Program9 { int input, i = 1, val, sum; decimal avg; public voi
using System;
// Write a C# program that takes x numbers as input to calculate and print the average.
class Program9
{
int input, i = 1, val, sum;
decimal avg;
public void program9M()
{
Console.Write("How many number(s) you have for an average: ");
input = Convert.ToInt32(Console.ReadLine());
if (input >= 2)
{
do
{
Console.Write("Enter number {0} for an average: ", i);
val = Convert.ToInt32(Console.ReadLine());
sum = sum + val;
i += 1;
} while (i <= input);
avg = (decimal)sum / i;
Console.WriteLine("The average of above {0} number is: {1}", i, avg);
}
else
{
Console.WriteLine("\n\nSorry you can't find average for one number, at least 2 number required\n\n");
}
Console.Write("Press any key to continue further...");
Console.ReadKey();
}
public static void Main()
{
Program9 p9 = new Program9();
p9.program9M();
}
}
电流输出:
The average of above **4** number is: **7.5**
预期产出:
The average of above **3** number is: **10**
问题是
do
循环如何工作
更改int输入,i=0,val,sum编码>并将i增量移到顶部。另外,因为我们从0开始,所以比较i小于输入
class Program9
{
int input, i = 0, val, sum;
decimal avg;
public void program9M()
{
Console.Write("How many number(s) you have for an average: ");
input = Convert.ToInt32(Console.ReadLine());
if (input >= 2)
{
do
{
i += 1;
Console.Write("Enter number {0} for an average: ", i);
val = Convert.ToInt32(Console.ReadLine());
sum = sum + val;
} while (i < input);
avg = (decimal)sum / i;
Console.WriteLine("The average of above {0} number is: {1}", i, avg);
}
else
{
Console.WriteLine("\n\nSorry you can't find average for one number, at least 2 number required\n\n");
}
Console.Write("Press any key to continue further...");
Console.ReadKey();
}
public static void Main()
{
Program9 p9 = new Program9();
p9.program9M();
}
}
class程序9
{
int输入,i=0,val,和;
十进制平均值;
公众假期计划()
{
控制台。写下(“你平均有多少个号码:”;
输入=Convert.ToInt32(Console.ReadLine());
如果(输入>=2)
{
做
{
i+=1;
Write(“输入数字{0}作为平均值:”,i);
val=Convert.ToInt32(Console.ReadLine());
sum=sum+val;
}而(i
}最好使用的循环是“for”循环,但使用它也可以工作。
这样做的错误是,在开始和结束时,“i”应该是0,而应该是“(i
int i = 0;
do
{
Console.Write("Enter number {0} for an average: ", i);
val = Convert.ToInt32(Console.ReadLine());
sum = sum + val;
i += 1;
} while (i < input);
avg = (decimal)sum / input;
Console.WriteLine("The average of above {0} number is: {1}", input, avg);
inti=0;
做
{
Write(“输入数字{0}作为平均值:”,i);
val=Convert.ToInt32(Console.ReadLine());
sum=sum+val;
i+=1;
}而(i
对于“for”循环,这种情况下更常见的用法是:
for (int i = 0; i < input; i++)
{
Console.Write("Enter number {0} for an average: ", i);
val = Convert.ToInt32(Console.ReadLine());
sum = sum + val;
}
avg = (decimal)sum / input;
Console.WriteLine("The average of above {0} number is: {1}", input, avg);
for(int i=0;i
此外,没有必要除以“i”,因为“input”总是数字的数量。您可以彻底清除该代码
int index = 0, input, averageInput;
var collection = new List<int>();
if(int.TryParse(Console.ReadLine(), out input) && input >= 2)
{
while(index <= input)
{
if(int.TryParse(Console.ReadLine(), out averageInput)
collection.Add(averageInput);
index++;
}
var sum = collection.Sum();
var average = collection.Average();
}
int index=0,输入,平均输入;
var collection=新列表();
if(int.TryParse(Console.ReadLine(),out输入)&&input>=2)
{
虽然(索引i=0
而不是1
?伙计,我们不是实时调试程序,请开始使用调试功能并检查您的问题所在。如果您有确切的问题,请询问。嘿,伙计,您是对的!!!非常感谢。您应该尝试添加断点并对其进行调试以了解更多信息,您可以查看顶部的文档部分以获取教程,您可以您将获得更多好处。请尝试添加一些详细信息。您可以添加的内容(假设您还没有)包括:您已经尝试过的内容,哪些已经/没有成功,少量代码或错误消息,以及可能帮助他人回答您问题的任何其他信息。请通过编辑原始问题并添加详细信息来完成此操作!谢谢!
int index = 0, input, averageInput;
var collection = new List<int>();
if(int.TryParse(Console.ReadLine(), out input) && input >= 2)
{
while(index <= input)
{
if(int.TryParse(Console.ReadLine(), out averageInput)
collection.Add(averageInput);
index++;
}
var sum = collection.Sum();
var average = collection.Average();
}