预警:我是 C++ 新手,这可能是一个非常基本的问题。我正在尝试读取包含一系列数字的 .txt 文件,将它们放入数组中,然后检查数组以查看它是否是真正的幻方。我已经完成了第一步,但是一个嵌套的 for 循环一直说我在数组中重复了 #s。我不知道我的逻辑是错误的,还是我只是检查了错误的数据。
...
bool flag=1;
int N;
string placeholder = " ";
{
int array[10][10];
ifstream inputFile;
inputFile.open("MAGIC.txt");
inputFile>>N;
for (int x=0;x<N;x++){
for (int y=0;y<N;y++){
inputFile >> array[x][y];
}
}
for (int x=0;x<N;x++){
for (int y=0;y<N;y++){
cout<<array[x][y]<<placeholder;
}
cout<<endl;
}
//Everything above works great.
//The following code changes "flag" to 0 every first loop
//I think it's checking the position instead of the value, but I don't know
for(int row=0;row<N;row++) {
for(int col=0;col<N;col++){
if(array[row]==array[col])
flag=0; break;
}
}
...
if(flag==1)
cout<<"Magic square"<<endl;
else
cout<<"No magic square"<<endl;
return 0;
}