ciao a tutti,
avrei un grosso problema.. dovrei fare un programma analogo..
questo programma sposta l'uno a seconda di dove vuole l'utente (su giu destra sinistra)codice:#include <stdio.h> #include <stdlib.h> #define N 9 void Su(); void Giu(); void Dx(); void Sx(); char mat[N][N]; int ia1,ja1; int main() { char risp; int i,j; for(i=0;i<N;i++) for(j=0;j<N;j++) mat[i][j]=0; mat[4][4]=1; ia1=4; ja1=4; do { for(i=0;i<N;i++) for(j=0;j<N;j++) printf("%d\t",mat[i][j]); printf("\n"); do { printf("\n\nDove sposti l'uno? \n( n=su , s=giu , e=dx , o=sx )\nq per uscire\n"); scanf("%c",&risp); } while(risp!='q' && risp!='Q' && risp!='n' && risp!='N' && risp!='s' && risp!='S' && risp!='e' && risp!='E' && risp!='o' && risp!='O'); switch(risp) { case 'n': Su(); break; case 'N': Su(); break; case 's': Giu(); break; case 'S': Giu(); break; case 'e': Dx(); break; case 'E': Dx(); break; case 'o': Sx(); break; case 'O': Sx(); break; } } while(risp!='q' && risp!='Q'); } void Su() { if (ia1>0) { mat[ia1][ja1]=0; ia1--; mat[ia1][ja1]=1; } } void Giu() { if (ia1<N-1){ mat[ia1][ja1]=0; ia1++; mat[ia1][ja1]=1; } } void Dx() { if (ja1<N-1){ mat[ia1][ja1]=0; ja1++; mat[ia1][ja1]=1; } } void Sx() { if (ja1>0){ mat[ia1][ja1]=0; ja1--; mat[ia1][ja1]=1; } }
io ne ho fatto uno analogo ma non mi funziona come vorrei..
il PROGRAMMA che dovrei fare io è leggermente diverso..
il valore centrale della matrice se è pari si deve spostare da solo ( in un'altra matrice che stampera il programma) in su se è dispari in giu. guardate qua
cioè mi spiego meglio mettiamo caso che hocodice:#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 9 void Su(); void Giu(); char mat[N][N]; int ia1,ja1; int i,j; int main() { srand(time(NULL)); int massimo,minimo; massimo=99; minimo=0; char risp; for(i=0;i<N;i++) for(j=0;j<N;j++) mat[i][j]=(rand()%(massimo-minimo))+minimo; if (mat[4][4]%2==0) { Su(); } else { Giu(); } ia1=4; ja1=4; for(i=0;i<N;i++) for(j=0;j<N;j++) printf("%d\t",mat[i][j]); printf("\n"); system("pause"); } void Su() { mat[ia1][ja1]=0; ia1--; mat[ia1][ja1]=mat[4][4]; printf("%d\t",mat[i][j]); printf("\n"); } void Giu() { if (ia1<N-1) { mat[ia1][ja1]=0; ia1++; mat[ia1][ja1]=mat[4][4]; printf("%d\t",mat[i][j]); // NON SO SE LA MIA LOGICA è GIUSTA.. IO V ORREI STAMPARE DI NUOVO LA MATRICE printf("\n"); } }
4 58 69 74 71 10 12 32 79
7 48 50 14 2 14 96 99 66
e cosi via io dovresi per esempio spostare il 2 siccome è pasi in atlo il 71 se ne va e al posto del 2 si mette un'altro numero casuale..
come potrei modificarlo?? grazie del vostro interessamento spero di non chiedere troppo..
P.s sapete dove posso trovare programmi esclusivamente sulle matrici simili a questo??
![]()
![]()

Rispondi quotando