控制台应用程序错误索引(从零开始)必须大于或等于零且小于参数列表的大小
本文关键字:小于 等于零 参数 列表 大于 索引 错误 应用程序 从零开始 控制台 | 更新日期: 2023-09-27 18:04:28
STATIC VOID MAIN GOES HERE
string[] dayNames = { "Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat" };
string m = "";
double average = 0;
double total = 0;
int[] bCalories = new int[7];
int[] lCalories = new int[7];
int[] dCalories = new int[7];
int[] dayTotal = new int[7];
for (int i = 0; i < 7; i++)
{
Console.Write("Please enter calories for {0} breakfast: ", dayNames[i]);
bCalories[i] = int.Parse(Console.ReadLine());
Console.Write("Please enter calories for {0} lunch: ", dayNames[i]);
lCalories[i] = int.Parse(Console.ReadLine());
Console.Write("Please enter calories for {0} dinner: ", dayNames[i]);
dCalories[i] = int.Parse(Console.ReadLine());
dayTotal[i] += bCalories[i];
dayTotal[i] += lCalories[i];
dayTotal[i] += dCalories[i];
total += dayTotal[i];
Console.WriteLine();
}
average = total /7;
Console.Clear();
Console.WriteLine("Day't'tBreakfast'tLunch'tDinner'tDay Total");
for (int i = 0; i < 7; i++)
{
if (dayTotal[i] > average)
{
m = "*** Above Average";
}
else if(dayTotal[i] <= average)
m = "";
我只收到错误索引(从零开始)必须大于或等于零并且小于参数列表的大小",在我将字符串m添加到下面的writeline之后。如果我在语句末尾没有字符串m,那么程序运行正常,只有当我添加它时,我才会得到一个错误
Console.Write("{0}'t't{1}'t't{2}'t{3}'t{4}'t{5}'n", dayNames[i],
bCalories[i], lCalories[i], dCalories[i], dayTotal[i] + m);
}
Console.Write("Average daily calories: {0}", average);
Console.ReadLine();
}
问题就在这里:
Console.Write("{0}'t't{1}'t't{2}'t{3}'t{4}'t{5}'n", dayNames[i],
bCalories[i], lCalories[i], dCalories[i], dayTotal[i] + m);
你有6个说明符(0 - 5),但只有5个参数被传入。如果您将其更改为仅包含{4}
,则应该可以正常工作:
Console.WriteLine("{0}'t't{1}'t't{2}'t{3}'t{4}", dayNames[i],
bCalories[i], lCalories[i], dCalories[i], dayTotal[i] + m);
我还建议使用Console.WriteLine
而不是Console.Write
和'n
。这很明显,您打算添加一行,这反过来又使代码更容易阅读和维护。