Errore in C

_prime_number
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

Risposte
_prime_number
Come non detto, credo di aver individuato l'errore! Sorry,

paola

_prime_number
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

eugenio.amitrano
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

eugenio.amitrano
Come sono dichiarate le variabili:
regionex, regioney, x e y ?
mi fai vedere anche come hai costruito il ciclo ?

Eugenio

_prime_number
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

eugenio.amitrano
Semmai sono io che ti offriro' da bere! Senza offesa!
Altrimenti che cavaliere sono ?

A presto,
Eugenio

farfallazzurra
ciao, ho visto che anche tu stai facendo un sudoku in C. non è che potresti inviarmelo?
Grazie
_Sara_

eugenio.amitrano
Io ti proporrei di farlo da sola, proveresti molta piu' soddisfazione.
Sei daccordo ?

Eugenio

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_

carlo232
"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. :D

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 :D

eugenio.amitrano
"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

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.