Errore in C
Ciao, il compilatore mi dà questo errore, e non riesco a capire perchè
subscripted value is neither array nor pointer
Vi scrivo alcuni pezzi di programma
/*Definisco una struttura Sudoku*/
typedef struct
{
char matrice[3][3];
}Regione;
typedef struct
{
Regione mat[3][3];
}Sudoku;
char partita[81];
for (i=0; i<3; i++)
for (j=0; j<3; j++)
for (h=0; h<3; h++)
for (k=0; k<3; k++)
{
sudoku[h][j][k]=partita[temp];
temp++;
}
questo è solo un esempio. Mi dà errore in tutte le righe in cui tento di individuare una precisa casella nella struttura Sudoku, come sopra, dove ho scritto sudoku[h][j][k]. Non capisco perchè... Avete qualche idea?
Paola
subscripted value is neither array nor pointer
Vi scrivo alcuni pezzi di programma
/*Definisco una struttura Sudoku*/
typedef struct
{
char matrice[3][3];
}Regione;
typedef struct
{
Regione mat[3][3];
}Sudoku;
char partita[81];
for (i=0; i<3; i++)
for (j=0; j<3; j++)
for (h=0; h<3; h++)
for (k=0; k<3; k++)
{
sudoku[h][j][k]=partita[temp];
temp++;
}
questo è solo un esempio. Mi dà errore in tutte le righe in cui tento di individuare una precisa casella nella struttura Sudoku, come sopra, dove ho scritto sudoku[h][j][k]. Non capisco perchè... Avete qualche idea?
Paola
Risposte
Come non detto, credo di aver individuato l'errore! Sorry,
paola
paola
Ok rieccomi qua: invece di fare il typedef per il sudoku, l'ho deifnito come una matrice char 3x3x3x3.
Quando una casellla è vuota nel mio sudoku, in teoria dovrebbe esserci il carattere '-'
Tuttavia quando cerco di vedere se in una casella della mia matrice sudoku c'è quel carattere oppure se cercod di inserirlo mi dà questi 2 errori:
comparison between pointer and integer
assignment makes integer from pointer without a cast
Perchè? Io scrivo così:
sudoku[regionex-1][regioney-1][x-1][y-1]= '-'
if (sudoku[regionex-1][regioney-1][x-1][y-1] == '-')
Cosa sbaglio??
Grazieeeee
Paola
Quando una casellla è vuota nel mio sudoku, in teoria dovrebbe esserci il carattere '-'
Tuttavia quando cerco di vedere se in una casella della mia matrice sudoku c'è quel carattere oppure se cercod di inserirlo mi dà questi 2 errori:
comparison between pointer and integer
assignment makes integer from pointer without a cast
Perchè? Io scrivo così:
sudoku[regionex-1][regioney-1][x-1][y-1]= '-'
if (sudoku[regionex-1][regioney-1][x-1][y-1] == '-')
Cosa sbaglio??
Grazieeeee
Paola
Sei sicura di aver dichiarato la variabile in questo modo?
char sudoku[3][3][3][3];
Questo e' un errore che restituisce quando c'e' incompatibilita' di formato.
Eugenio
char sudoku[3][3][3][3];
Questo e' un errore che restituisce quando c'e' incompatibilita' di formato.
Eugenio
Come sono dichiarate le variabili:
regionex, regioney, x e y ?
mi fai vedere anche come hai costruito il ciclo ?
Eugenio
regionex, regioney, x e y ?
mi fai vedere anche come hai costruito il ciclo ?
Eugenio
Ho sistemato grazie! Non chiedermi come ho fatto -_- perchè non lo capirò MAI...!!!!
Cmq sei il mio salvatore e se mai ci incontreremo ti offrirò da bere eheheh!
Paola
Cmq sei il mio salvatore e se mai ci incontreremo ti offrirò da bere eheheh!
Paola
Semmai sono io che ti offriro' da bere! Senza offesa!
Altrimenti che cavaliere sono ?
A presto,
Eugenio
Altrimenti che cavaliere sono ?
A presto,
Eugenio
ciao, ho visto che anche tu stai facendo un sudoku in C. non è che potresti inviarmelo?
Grazie
_Sara_
Grazie
_Sara_
Io ti proporrei di farlo da sola, proveresti molta piu' soddisfazione.
Sei daccordo ?
Eugenio
Sei daccordo ?
Eugenio
Potrei darti ragione... se sapessi programmare....
Finora i programmi che ho dovuto fare li ho fatti da sola e mi hanno dato anche soddisfazione ma stavolta non so proprio dove sbattere la testa....
Quindi se volete darmi un aiuto (o almeno un punto di partenza) è molto ma molto gradito!
_Sara_
Finora i programmi che ho dovuto fare li ho fatti da sola e mi hanno dato anche soddisfazione ma stavolta non so proprio dove sbattere la testa....
Quindi se volete darmi un aiuto (o almeno un punto di partenza) è molto ma molto gradito!
_Sara_
"farfallazzurra":
Potrei darti ragione... se sapessi programmare....
Finora i programmi che ho dovuto fare li ho fatti da sola e mi hanno dato anche soddisfazione ma stavolta non so proprio dove sbattere la testa....
Quindi se volete darmi un aiuto (o almeno un punto di partenza) è molto ma molto gradito!
_Sara_
Mhmm... se sai programmare poco forse un risolutore di sudoku è un pò esagerato, comunque posso darti uno spunto.

Per semplificare le cose fai un programma console, in esso disegnerai una griglia simile al suduku con le sole linee che hai disponibili, ovvero i simboli | e -.
Il programma dovrà dividersi in 3 parti come minimo
INPUT: il programma riceve dall'utente i dati del sudoku
ELABORAZIONE: con qualche sistema il programma risolve il sudoku
OUTPUT: il programma disegna il sudoku risolto.
come ho già detto un risolutore di sudoku è un progetto parecchio ambizioso, però sicuramente se riuscirai a portare a termine anche solo le prime 2 parti avrai imparato un bel pò di cose utili.
Che compilatore usi? è importante perchè le librerie sono differenti da compilatore a compilatore...io uso Microsof Visual C++ 6.0

"farfallazzurra":
Potrei darti ragione... se sapessi programmare....
Finora i programmi che ho dovuto fare li ho fatti da sola e mi hanno dato anche soddisfazione ma stavolta non so proprio dove sbattere la testa....
Quindi se volete darmi un aiuto (o almeno un punto di partenza) è molto ma molto gradito!
_Sara_
Il mio scopo non e' quello di non aiutarti. Anzi !
Mi dispiacerebbe se posso sembrarti cattivo e non disponibilie.
Forse mi sbaglio ma dalle tue parole non leggo molto sforzo a cercare di realizzarlo.
Se mi permetti un suggerimento, il miglior modo per iniziare e' buttare giu' una bozza se pur interamente sbagliata e incompleta, non importa. Man mano, la modellereai, la implementerai e la correggerai.
In questa impresa, posso fornirti tutto l'aiuto di cui hai veramente bisogno.
Come vedi il buon Carlo ti ha gia' fornito qualche spunto, non ti resta che iniziare.
Forza e coraggio! Capisco che e' dura, ma sono sicuro che ci riuscirai.
A presto,
Eugenio