C# c语言中的矩阵数组
我有一个程序,应该从控制台读取一个整数值x,然后打印出多维数据。列j上的行i的值应为i*j。例如:如果我输入3,矩阵应该如下所示:C# c语言中的矩阵数组,c#,arrays,matrix,C#,Arrays,Matrix,我有一个程序,应该从控制台读取一个整数值x,然后打印出多维数据。列j上的行i的值应为i*j。例如:如果我输入3,矩阵应该如下所示: 1 2 3 2 4 6 3 6 9 现在,我已经在我的主函数中编写了以下代码: Console.WriteLine("Input a value: "); int x = int.Parse(Console.ReadLine()); int[,] arr = new int[x,x];
1 2 3
2 4 6
3 6 9
现在,我已经在我的主函数中编写了以下代码:
Console.WriteLine("Input a value: ");
int x = int.Parse(Console.ReadLine());
int[,] arr = new int[x,x];
for (int i = 0; i < x; i--)
{
for (int j = 0; j < x; j++)
{
arr[i, j] = arr[i, j] + arr[i, j];
Console.Write(arr[i, j] + " ");
}
}
Console.ReadLine();
我做错了什么
您必须将i-更改为i++
将Console.WriteLine放在内部for循环之后。它将在每x个数字后打印一个换行符,使其像矩阵一样循环
你是说j列上的行i的值应该是i*j,但是我在你的代码中看不到任何i*j。将计算更改为:arr[i,j]=i*j
应该是这样,但因为循环从0到x-1运行,并且希望结果是从1到x,所以必须调整计算并使其arr[i,j]=i+1*j+1
完整代码应为:
Console.WriteLine("Input a value: ");
int x = int.Parse(Console.ReadLine());
int[,] arr = new int[x, x];
for (int i = 0; i < x; i++)
{
for (int j = 0; j < x; j++)
{
arr[i, j] = (i + 1) * (j + 1);
Console.Write(arr[i, j] + " ");
}
Console.WriteLine();
}
Console.ReadLine();
你说arr[i,j]的值必须等于i*j,但你没有在你的代码上这样做 改变
arr[i, j] = arr[i, j] + arr[i, j];
到
您需要更改的另一件事是,由于以下代码,for循环中的i正在递减:i-。将其更改为i++看看int[,]是如何充满了零的,您所做的就是添加零+零 看起来你真正想要的是:
int[,] arr = new int[x,x];
for (int i = 0; i < x; i++)
{
for (int j = 0; j < x; j++)
{
arr[i, j] = (i+1) * (j + 1);
Console.Write(arr[i, j] + " ");
}
Console.Write("\r\n");
}
Console.ReadLine();
i-应该是i++使用调试器逐步完成它,错误应该是显而易见的。我尝试过,但后来得到的输出是:0 0 0 0 0 0 0 0在一行中,在外部循环中,在内部循环结束后,如Console.WriteLine\n;并改变为arr[i,j]=i*j;非常感谢。这真的很有帮助。这产生了与您在问题中想要的相同的输出。
arr[i, j] = (i+1) * (j+1);
int[,] arr = new int[x,x];
for (int i = 0; i < x; i++)
{
for (int j = 0; j < x; j++)
{
arr[i, j] = (i+1) * (j + 1);
Console.Write(arr[i, j] + " ");
}
Console.Write("\r\n");
}
Console.ReadLine();