我的另一个婴儿问题,但我敢问它。
代码是愚蠢的:
using System;
using System.Linq;
public class Exercise25
{
public static void Main()
{
Console.WriteLine("Define the values!");
int[] arr = new int [3];
int i;
for (i = 0; i < 3; i++)
{
Console.Write("Number {0} : ", i);
arr[i] = Convert.ToInt32(Console.ReadLine());
}
int sum = arr.Sum();
double ave = arr.Average();
Console.WriteLine("The average is: {0}\nThe sum of the values is {1}\n", ave, sum);
Console.ReadKey();
}
}
我的目标是,当程序写出要求的号码时
(Console.Write("Number {0} : ", i);
它应该要求数字1作为第一个数字,而不是数字0。 我将“i”初始化为1,直到“&lt; 4”或“&lt; = 3”或“&lt; = 4”,但它不起作用。
当然还需要3个号码。当我在创建时没有定义数组的大小时,我也得到了错误代码。
我确信解决方案很简单,很抱歉花时间,但我坚持下去,我尝试了所有我能想到的。感谢。
答案 0 :(得分:0)
当你将i初始化为1并将其递增到3时它不起作用的原因是因为当索引3不存在时(仅0,1和2)无法定义数组[3]因为你把它初始化为长度3)。只需更换
Console.Write("Number {0} : ", i);
与
Console.Write("Number {0} : ", (i+1));
这不会改变您要写入的索引,但会显示您想要的索引。