nik324 Δημοσ. 26 Νοεμβρίου 2011 Δημοσ. 26 Νοεμβρίου 2011 Θέλω να φτιάξω ένα πρόγραμμα που θα πέρνει τις λύσεις ενός σουντόκου δλδ ένα πίνακα 9Χ9 και θα εμφανίζει αν τελικά είναι σουντόκου η όχι...Αν δεν είναι θα εμφανίζει με σχετικό μνμ τις γραμμές τις στήλες και τα μπλόκς που είναι λαθός... Να παραθέσω τον κώδικα που έχω γράψει να μου πείτε που κάνω λάθος;;
Dexterpap Δημοσ. 26 Νοεμβρίου 2011 Δημοσ. 26 Νοεμβρίου 2011 Γεια σου φιλε αν μπορεις κανε παραθεση τον κωδικα μηπως μπορω να βοηθησω. Γιατι δεν γνωριζω τη λογικη του σουντοκου δεν εχω ασχοληθει ποτε!
nik324 Δημοσ. 26 Νοεμβρίου 2011 Μέλος Δημοσ. 26 Νοεμβρίου 2011 > #include <stdio.h> #include <stdlib.h> #define N 9 main() { int i,j; int col; int row; int r=0; int c=0; int b=0; int falseRows[N]={0}; int falseCols[N]={0}; int falseBlocks[N]={0}; int array[N] [N]; for (i = 0; i < N; i++) { for(j=0; j< N; j++) { printf("array[%d] [%d]=", i,j); scanf("%d, %d", &array[i] [j]); } } for(i=0;i<N;i++){ for(j=0;j<N && c==0;j++){ for(row=0; (row<N) && (c==0);row++){ if (row != i && array[i] [j] == array[j] [row]){ r=1; falseRows[i]=i+1; } } } } for(i=0;i<N;i++){ for(j=0;j<N;j++){ for(col=0;col<N;col++){ if(array[j] [i] == array[col] [i]) && col !=j){ c=1; falseCols[i]=i+1; } } } } for(i=0;i<N;i++){ for(j=0;j<N;j++){ for(row=(i/3)*3;row<(i/3)*3+3;row++){ for(col=(j/3)*3;col<(j/3)*3+3;col++){ if (row!=i && col!=j &&array[row] [col] == array [i] [j]){ if (i<3 && j<3){ falseBlocks[0] = 1; }else if (i<3 && j<6){ falseBlocks[1] = 2; }else if(i<3 && j<9){ falseBlocks[2] = 3; }else if(i<6 && j<3){ falseBlocks[3] = 4; }else if(i<6 && j<6){ falseBlocks[4] = 5; }else if(i<6 && j<9){ falseBlocks[5] = 6; }else if(i<9 && j<3){ falseBlocks[6] = 7; }else if(i<9 && j<6){ falseBlocks = 8; } else { falseBlocks = 9; } } } } } } } Αν αυτό είναι οκ θα συνεχίσω και για την εμφάνιση του μνμτος που ζητάει η άσκηση
Dexterpap Δημοσ. 26 Νοεμβρίου 2011 Δημοσ. 26 Νοεμβρίου 2011 Κοιτα οταν οταν το ετρεξα στο visual studio μου εβγαλε καποια συντακτικα λαθοι τσεκαρε τα. Επειδη δεν ξερω οπως σου ειπα παραπανω τη λογικη του σουντοκου δεν ξερω να το διορθοσω. κοιτα τα λαθοι που μου βγαζει στην παρκατω εικονα.
nik324 Δημοσ. 26 Νοεμβρίου 2011 Μέλος Δημοσ. 26 Νοεμβρίου 2011 Ναι και μένα το ίδιο...το κοιτάω αλλά δεν μπορώ να δω κάποιο συνακτικό λάθος
Leuteris Δημοσ. 26 Νοεμβρίου 2011 Δημοσ. 26 Νοεμβρίου 2011 Με DevC++ βλέπω τα παρακάτω συντακτικά λάθη.. > #include <stdio.h> #include <stdlib.h> #define N 9 main() { int i,j; int col; int row; int r=0; int c=0; int b=0; int falseRows[N]={0}; int falseCols[N]={0}; int falseBlocks[N]={0}; int array[N] [N]; for (i = 0; i < N; i++) { for(j=0; j< N; j++) { printf("array[%d] [%d]=", i,j); scanf("%d, %d", &array[i] [j]); } } for(i=0;i<N;i++){ for(j=0;j<N && c==0;j++){ for(row=0; (row<N) && (c==0);row++){ if (row != i && array[i] [j] == array[j] [row]){ r=1; falseRows[i]=i+1; } } } } for(i=0;i<N;i++){ for(j=0;j<N;j++){ for(col=0;col<N;col++){ if(array[j] [i] == array[col] [i]) && col !=j){ //η παρένθεση c=1; falseCols[i]=i+1; } } } } for(i=0;i<N;i++){ for(j=0;j<N;j++){ for(row=(i/3)*3;row<(i/3)*3+3;row++){ for(col=(j/3)*3;col<(j/3)*3+3;col++){ if (row!=i && col!=j &&array[row] [col] == array [i] [j]){ if (i<3 && j<3){ falseBlocks[0] = 1; }else if (i<3 && j<6){ falseBlocks[1] = 2; }else if(i<3 && j<9){ falseBlocks[2] = 3; }else if(i<6 && j<3){ falseBlocks[3] = 4; }else if(i<6 && j<6){ falseBlocks[4] = 5; }else if(i<6 && j<9){ falseBlocks[5] = 6; }else if(i<9 && j<3){ falseBlocks[6] = 7; }else if(i<9 && j<6){ falseBlocks = 8; //καταχώρηση σε πίνακα } else { falseBlocks = 9; } } } } } } }
nik324 Δημοσ. 26 Νοεμβρίου 2011 Μέλος Δημοσ. 26 Νοεμβρίου 2011 Οκ φίλε σε ευχαριστώ πολύ...Δεν βλέπω καλά μάλλον Η λογική του αλγορίθμου μου πώς σου φαίνεται;
Dexterpap Δημοσ. 26 Νοεμβρίου 2011 Δημοσ. 26 Νοεμβρίου 2011 Η λογικη του αλγοριθμου σου μου φαινεται σωστα δομημενη αλλα πρεπει να κοιταξεις λιγο τις παραμετρους και αν τα εχεις ορισει ολα σωστα βαση το πως λειτουργει το σουντοκου. παντως για να μην πονοκεφαλιαζεις λογικα αμα ψαξεις στο ιντερνετ μπορει να βρεις και παρομοιο κωδικα. Ωραιο προγραμματακι παντως αμα το το τελειωσεις κανε καμια παραθεση να το δουμε.
nik324 Δημοσ. 26 Νοεμβρίου 2011 Μέλος Δημοσ. 26 Νοεμβρίου 2011 Δεν λέει αν το βρω έτοιμο... Θέλω να κάνω το ίδιο και με δυναμική διαχείρηση μνήμης...Ελπίζω να προλάβω...
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα