다음과 같은 프로그램을 디버깅하고 마무리하는 데 도움이 필요합니다. 각 행에서 동일한 수의 정수 값을 가진 파일을 읽습니다 (이것은 n x n 행렬입니다). 프로그램은 행렬이 마술 사각형인지 결정해야합니다. 마술 사각형의 예 : "ms.txt" 8,1,6; 3,5,7;매직 스퀘어 프로그램 도움말 C#
내 코드 4,9,2은 (진행중인 작업)을, 당신의 도움이
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace MagicSquare
{
class Program
{
static void Main(string[] args)
{
int[,]S;
string line; //to hold one line of file
string[] token; //to hold each token in line
char[] separator = { ',' };
int N;
//open file
try
{
using (StreamReader sr = new StreamReader("..\\..\\ms.txt"))
{
line = sr.ReadLine();
token = line.Split(separator);
N = token.Count();
S = new int[N, N];
for (int i = 0; i < N; i++)
S[0, i] = Convert.ToInt32(token[i]);
for (int r = 1; r < N; r++)
{
line = sr.ReadLine();
token = line.Split(separator);
for (int c = 0; c < N; c++)
S[r, c] = Convert.ToInt32(token[c]);
}
sr.Close();
}
}
catch (Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
//find Magic Number
int magic = 0;
for (int i = 0; i < N; i++)
magic += S[i, i];
int sum = 0;
for (int i=0;i<N;i++)
sum += S[i,N -1-i];
if (magic!=sum)
{
Console.Write("Not Magic");
return;
}
//check each column
for (int c=0;c<N;c++)
{
int sum1 =0;
for (int r=0;r<N;r++)
sum1 += S[r,c];
if (sum1!=magic)
{
Console.WriteLine("Not magic");
return;
}
}
}
}
}
을 감상 할 수있다
왜이 프로그램이 원하는대로 할 수 없습니까? (그리고 "마술 광장"은 무엇입니까?) 질문을 더 명확히하면, 우리가 당신을 도울 것이 더 쉬울 것입니다. –
제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –
마술 광장은 하나의 행 또는 하나의 열 (두 개의 대각선 포함)을 추가 할 때 똑같은 대답이나 번호를 부여하는 매트릭스 n × n (행과 열의 수가 동일) 예 : [8 , 1,6] [3,5,7] [4,9,2] –