我构建了一个C#程序,其中提示用户输入10个不同的值,然后程序应该对这些值求和并平均并打印总和和平均值。我遇到的问题是我的程序只捕获输入的最后一个值...请帮忙!
namespace ConsoleApplication4
{
class Program
{
const int count = 10;
static void Input(double[] numbers, int num)
{
for (int i = 0; i <= 9; i++)
{
Console.Write("Enter integer {0}: ", i + 1);
numbers[num] = Convert.ToDouble(Console.ReadLine());
}
}
static void Average(double[] numbers, int num)
{
double sum = 0;
double avg = 0;
for (int i = 0; i < numbers.Length; i++)
{
sum += numbers[i];
}
avg = sum / numbers.Length;
Console.WriteLine("The sum of the inputs is {0} and the average is {1}", sum, avg);
}
static void Main(string[] args)
{
double[] numbers = new double[count];
for (int num = 0; num < 1; num++)
{
Input(numbers, num);
Average(numbers, num);
Console.WriteLine("Press the Enter Key");
Console.ReadLine();
}
}
}
}
}
答案 0 :(得分:3)
在您的输入法中,您将用户输入分配给数字[num]而不是数字[i]。
答案 1 :(得分:2)
如果您查看Input()
方法,则始终存储在for循环中的num
索引中,但num
在循环中不会更改。您应该使用numbers[i]
代替numbers[num]
。
答案 2 :(得分:1)
for (int i = 0; i <= 9; i++)
{
Console.Write("Enter integer {0}: ", i + 1);
numbers[num] = Convert.ToDouble(Console.ReadLine());
那应该是
numbers[i] = Convert.ToDouble(Console.ReadLine());