我正在編寫讀取一組數字的代碼,然後將它們顯示在屏幕上的4x4網格中,然後該程序將確定它是否爲幻方。我的問題是,如何讓用戶將數字輸入到readData方法中顯示的文件中,以便在調用該方法時將顯示用戶網格。將網格寫入文件
文件data.txt還存儲在哪裏?
感謝
#include<iostream>
#include<fstream>
using namespace std;
const int dimension = 4; // dimension for the array
typedef int Sq[dimension] [dimension]; // declare vector for type names
void ReadData(Sq square) // read data from file
{ ifstream inFile;
char fileName[13] = "data.txt";
inFile.open (fileName); // open file for reading
for (int r = 0; r < dimension; r++) // row loop
for (int c = 0; c < dimension; c++) // column loop
inFile >> square[r][c]; // read data into matrix
inFile.close(); // close the file
}
void Display (const Sq square) // display matrix
{ cout << " Magic Square Program " << endl << endl;
for (int r = 0; r < dimension; r++)
{ for (int c = 0; c < dimension; c++)
{ cout.width(6); //set output width to 6 characters
cout << square[r][c] << "\t "; // display numbers
}
cout << endl;
}
}
bool magicSquare(Sq square) // add rows, columns, and diagonals
{ int firstSum = 0, sum;
bool magic = true;
for (int r = 0; r < dimension; r++) // add 1st column for a comparison
firstSum += square[r][1];
for (int r = 1; r < dimension; r++) // row loop first when adding rows
{ sum = 0;
for (int c = 0; c < dimension; c++)
sum += square[r][c]; // add row
if (sum != firstSum) // check for magic failure
return (false); // not magic
}
for (int c = 0; c < dimension; c++) // column loop first when adding columns
{ sum = 0;
for (int r = 0; r < dimension; r++)
sum += square[r][c]; // add columns
if (sum != firstSum) // check for magic failure
return (false); // not magic
}
sum = 0;
for (int r = 0; r < dimension; r++)
sum += square[r][r]; // add front diagonal
if (sum != firstSum) // check for magic failure
return (false); // not magic
sum = 0;
for (int r = 0; r < dimension; r++)
sum += square[r][dimension - r - 1]; // add back diagonal
if (sum != firstSum) // check for magic failure
return (false); // not magic
else
return (true);
} // end magicSquare function
int main()
{
Sq square;
ReadData(square); // read data from file
Display (square); // display matrix
if (magicSquare(square)) // check for magic property
cout << "\n This Square is Magic \n " << endl;
else
cout << "\n This Square is Not Magic \n " << endl;
system("Pause");
return(0);
}
代碼太多,眼睛受傷。你能縮小一點嗎? – 2013-03-27 13:53:39