当我调用名为 Vyměň 的方法时(它具有矩阵“matice”作为形式参数),但是当方法结束时,实际矩阵“a”(不应更改)a 被覆盖。为什么?
static int[,] Vyměň(int sloupec, int[,] matice, int [] vektor)
{
for (int i = 0; i < matice.GetLength(0); i++)
{
matice[i, sloupec] = vektor[i];
}
return matice;
}
static void Main(string[] args)
{
int[,] a = new int[3,4];
int[] b = new int[3];
a = Čti(); //Method Čti works fine
for( int i = 0; i <3; i++)
{
b[i] = a[i, 3];
}
int detA = determinanty.det3(a);
Vypis(a);
int detX = determinanty.det3(Vyměň(0, a, b));
Vypis(a);
int detY = determinanty.det3(Vyměň(1, a,b));
Vypis(a);
int detZ = determinanty.det3(Vyměň(2, a,b));
Vypis(a);
double x = detX / detA;
double y = detY / detA;
double z = detZ / detA;
Console.WriteLine("kořen x = {0}", x);
Console.WriteLine("kořen y = {0}", y);
Console.WriteLine("kořen z = {0}", z);
}
}