이것은 응답을 C
에 저장하는 행렬 곱, 즉 C=A*B
입니다. 그러면 C
값이 변경되지 않는 이유는 무엇입니까?왜이 C# 코드가 실패합니까?
각 열이 단일 스레드에서 평가되도록 병렬 프로그래밍에서이 메서드를 사용하기 때문에 각 열을 계산하는 특별한 방법을 사용합니다. 이전에 파스칼에서 이와 같은 것을 테스트했지만 C#에서는 모든 것이 잘못되었습니다.
참고 : 이것은 숙제를위한 것이며이 코드에는 아직 병행하지 않습니다.
class Program
{
private static int n = 2;
static int[,] A = new int[n, n];
static int[,] B = new int[n, n];
static int[,] C = new int[n, n];
private static void Main(string[] args)
{
A[0, 0] = 2; A[0, 1] = 3;
A[1, 0] = 5; A[1, 1] = 1;
B[0, 0] = 3; B[0, 1] = 0;
B[1, 0] = 1; B[1, 1] = 0;
C[0, 0] = 0; C[0, 1] = 0;
C[1, 0] = 0; C[1, 1] = 0;
//Calculation
for (int z = 0; z < n; z++)
{
ComputeColumn(z);
}
PrintAnswer(C);
Console.ReadKey();
}
private static void ComputeColumn(int n)
{
for (int i = 0; i < n; i++)
{
for (int k = 0; k < n; k++)
{
C[i, n] += (A[i, k] * B[k, n]);
}
}
}
private static void PrintAnswer(int[,] what)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Console.Write(what[i, j] + " ");
}
Console.WriteLine();
}
}
}
디버거를 사용하여 쉽게 문제를 진단 할 수 있습니다. – Msonic
의사의 코를보십시오! – sap
여기에 힌트가 있는데 C의 어느 셀에 변화가있을 것으로 예상됩니까? –