那么如何计算矩阵a的第一行中的总数并将其放入矩阵b中。
示例:
矩阵a:3 2 1
并且矩阵b的输出将类似于:3 + 6 2 + 6 1 + 6
Console.Write("Matriks A\n");
Console.WriteLine("------------");
Console.WriteLine();
for (a = 0; a < baris; a++)
{
for (b = 0; b < kolom; b++)
{
Console.Write(" Matriks A [" + (a + 0) + "][" + (b + 0) + "] = ");
matrik_a[a, b] = int.Parse(Console.ReadLine());
}
}
Console.WriteLine();
Console.WriteLine("Matriks B ");
Console.WriteLine("----------------------------------");
for (a = 0; a < baris; a++)
{
for (b = 0; b < kolom; b++)
{
matrik_b[a, b] = matrik_a[a, b] + matrik_b[a, b];
Console.Write("{0:d}\t", matrik_b[a, b]);
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
答案 0 :(得分:0)
你需要为每一行创建一个循环,将总数保存到var并放入另一个矩阵,所有这一切都在一次迭代中。
复杂性保持不变,因为2 * O(n)= O(n)
static void Main(string[] args)
{
int baris = 2, kolom = 2, a=0, b=0;
Console.Write("Matriks A\n");
Console.WriteLine("------------");
Console.WriteLine();
int[,] matrik_a = new int[3, 3];
int[,] matrik_b = new int[3, 3];
for (a = 0; a <= baris; a++)
{
for (b = 0; b <= kolom; b++)
{
Console.Write(" Matriks A [" + (a + 0) + "][" + (b + 0) + "] = ");
matrik_a[a, b] = int.Parse(Console.ReadLine());
}
}
Console.WriteLine();
Console.WriteLine("Matriks B ");
Console.WriteLine("----------------------------------");
int sumOfRow = 0;
for (a = 0; a <= baris; a++)
{
for (b = 0; b <= kolom; b++)
{
sumOfRow += matrik_a[a, b];
}
Console.WriteLine("sum of row " + a.ToString() + "is: " + sumOfRow.ToString());
for (b = 0; b <= kolom; b++)
{
matrik_b[a, b] = matrik_a[a, b] + sumOfRow;
}
sumOfRow = 0;
}
for (a = 0; a <= baris; a++)
{
for (b = 0; b <= kolom; b++)
{
Console.Write(matrik_b[a, b]);
}
}
Console.ReadLine();
}
答案 1 :(得分:0)
我不确定这是否是最有效的解决方案,但将第二部分循环更改为以下内容应该有效:
for (a = 0; a < baris; a++)
{
int rowSum = 0; //Below loop can be avoided using LINQ
for (b = 0; b < kolom; b++)
{
rowSum += matrik_a[a, b];
}
for (b = 0; b < kolom; b++)
{
matrik_b[a, b] = matrik_a[a, b] + rowSum;
Console.Write("{0:d}\t", matrik_b[a, b]);
}
}