Proszę o pomoc. W pliku data.txt mam zapisane poprawne rozwiązanie sudoku:
123459678
678123459
459678123
214365897
365897214
897214365
531742986
742986531
986531742
Chcę, aby w pliku results.txt wyświetlała się informacja czy rozwiązanie jest poprawne czy też nie. Jednak zawsze wyświetla się, że jest niepoprawne. Chciałabym dowiedzieć się jak poprawić ten kod:
#include <fstream>
using namespace std;
ifstream inFile("data.txt");
ofstream outFile("results.txt");
int n, sudoku[10][10], sumH[20], sumV[20];
bool bSum=false, bSkirt=false;
void input(){
inFile >> n;
for(int i=0;i<n;i++){
for(int m=0;m<n;m++){
inFile >> sudoku[i][m];
}
}
inFile.close();
}
void sum(){
for(int i=0;i<n;i++){
sumH[i]=0;
sumV[i]=0;
for(int m=0;m<n;m++){
sumH[i]+=sudoku[i][m];
sumV[i]+=sudoku[m][i];
}
}
for(int i=0;i<n;i++){
for(int m=0;m<n;m++){
if(sumH[i]==sumH[m] && sumV[i]==sumH[m]){
bSum = true;
}else{
bSum = false;
break;
}
}
}
}
void difference(){
for(int i=0;i<n;i++){
for(int m=1;m<n;m++){
if(sudoku[0][i]!=sudoku[m][i] && sudoku[i][0]!=sudoku[i][m]){
bSkirt = true;
}else{
bSkirt = false;
break;
}
}
}
}
int main(){
input();
sum();
difference();
if(bSum==true&&bSkirt==true){
outFile << "Poprawne";
}else{
outFile << "Niepoprawne";
}
outFile.close();
return 0;
}
Proszę o pomoc i dziękuję z góry :)