我是一名新学生,对此作业有点麻烦,但是powerpoint笔记和其他在线指南似乎没有帮助。如果有人能给我一个指针,我将不胜感激!
private static int[,] GenerateTT(int size)
{
int[,] table = new int[size,size];
for (int i = 1; i < size+1; i++)
{
for (int j = 1; j < i+1; j++)
{
table[i-1, j-1] = i * j;
}
}
return table;
}
private static void DisplayTT(int[,] table)
{
Console.WriteLine();
Console.WriteLine("Here is the times table for that size:");
Console.WriteLine();
for (int i = 1; i <= table.Length; i++)
{
for (int j = 1; j <= i; j++)
{
Console.Write("{0}\t", table[i-1, j-1]);
}
Console.WriteLine("\n");
}
Console.WriteLine();
}
输出应该是这样的(例如,如果输入4):
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
但我得到的是这个,加上它在DisplayTT崩溃了(表格):
1
2 4
3 6 9
4 8 12 16
如果有帮助,这里是Main方法的相关部分。
int size = GetValue("Please enter the size (4-20) of the times table: ", 4, 20);
Console.WriteLine();
int[,] table = GenerateTT(size);
DisplayTT(table);
答案 0 :(得分:0)
您应该更改内部循环的高架:
private static int[,] GenerateTT(int size)
{
int[,] table = new int[size,size];
for (int i = 1; i < size+1; i++)
{
for (int j = 1; j < i+1; j++) // <-- change i+1 to size+1
{
table[i-1, j-1] = i * j;
}
}
return table;
}
我宁愿让循环从零开始:
private static int[,] GenerateTT(int size)
{
int[,] table = new int[size,size];
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
table[i, j] = (i+1) * (j+1);
}
}
return table;
}
答案 1 :(得分:0)
您可以将GetLength(X)
属性用于多维数组,其中X
是维度的索引。
for (int i = 0; i < table.GetLength(0); i++)
{
for (int j = 0; j < table.GetLength(1); j++)
{
Console.Write("{0}\t", table[i, j]);
}
Console.WriteLine("\n");
}