Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- int main() {
- int sudoku[9][9] = { 0 }; // Eingebenes Sudokufeld Zahlenwerte herausfinden und hier reinspeichern
- string zeilen[11]; // Sudokufeld, welches eingegeben wird.
- int index1 = 0;
- int index2 = 0; // index für das zweidimensionale Array (zweite Stelle)
- cout << "Bitte geben Sie das Sudoku ein:" << endl;
- // Mit einer Schleife 11 mal nach einer Zeileneingabe fragen
- for (int i = 0; i < 11; i++) {
- getline(cin, zeilen[i]); // Zeile einlesen
- if (i != 3 && i != 7) { // Solange Zeile nicht die "---" Zeile ist über die aktuelle Zeile laufen und alle Zahlenwerte rausfischen
- index2 = 0;
- for (int a = 0; a < zeilen[i].length(); a++) { // a steht für die Position in der Zeile
- // Wenn die aktuelle Stelle in Punkt oder ein | ist, dann zur nächsten Stelle gehen
- if (zeilen[i][a] == '.' || zeilen[i][a] == '|')
- continue;
- else {
- // Ansonsten ist es ein Zahlenwert -> In das Sudoku Array speichern
- sudoku[index1][index2] = zeilen[i][a] - '0';
- index2++;
- }
- }
- index1++;
- }
- }
- // Ausgabe für Zahlen und Zeichen
- cout << "Das Sudoku lautet: " << endl;
- for (int i = 0; i < 9; i++) {
- if (i % 3 == 0 && i != 0)
- cout << "=======//=======//=======" << endl;
- for (int c = 0; c < 9; c++) {
- cout << ";" << sudoku[i][c];
- if (c == 2 || c == 5)
- cout << ";//";
- }
- cout << endl;
- }
- // Überprüfung auf Korrektheit 8.2:
- int anzahl = 0;
- // Spaltenüberprüfung
- for (int spalten = 0; spalten < 9; spalten++) {
- for (int zahlen = 1; zahlen <= 9; zahlen++) {
- for (int zeilen = 0; zeilen < 9; zeilen++) {
- if (sudoku[zeilen][spalten] == zahlen)
- anzahl++;
- }
- if (anzahl > 1)
- cout << "Spalten " << spalten << ": Zahl " << zahlen << " kommt mehrfach vor." << endl;
- else if (anzahl == 0)
- cout << "Spalten " << spalten << ": Zahl " << zahlen << " kommt nicht vor." << endl;
- anzahl = 0;
- }
- }
- // Zeilenüberprüfung
- for (int zeilen = 0; zeilen < 9; zeilen++) {
- for(int zahlen = 1; zahlen <=9; zahlen++){
- for (int spalten = 0; spalten < 9; spalten++) {
- if (sudoku[zeilen][spalten] == zahlen)
- anzahl++;
- }
- if (anzahl > 1)
- cout << "Zeile " << zeilen << ": Zahl " << zahlen << " kommt mehrfach vor." << endl;
- else if (anzahl == 0)
- cout << "Zeile " << zeilen << ": Zahl " << zahlen << " kommt nicht vor." << endl;
- anzahl = 0;
- }
- }
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement