乘法表使用二维数组和方法
本文关键字:二维数组 方法 | 更新日期: 2023-09-27 18:16:26
我是一个新学生,做这个作业有点困难,但是ppt笔记和其他在线指南似乎没有帮助。如果有人能给我一个指针,我将不胜感激!
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(table):
崩溃 12 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);
您可以使用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");
}
您应该更改内循环hi-bound:
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;
}
我宁愿保持循环从0开始:
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;
}