|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jun 2015
Messaggi: 3
|
[C]Grafico della tartaruga
Sto cercando di creare il grafico della tartaruga in C solo che incontro un errore di segmentazione.
Potreste aiutarmi Codice:
#include <stdio.h> #define SIZE_ROW 50 #define SIZE_COLUMN 50 int draw ( int pen , int position , int grafico[][SIZE_COLUMN] , int move , int current_row , int current_column );//function prototype int print ( int grafico[][SIZE_COLUMN] );//function prototype int main ( void ) { int grafico[SIZE_ROW][SIZE_COLUMN];//declare the array where there is the graphic int command = 1;//declare the variables where you put the command int move; int pen = 1; int position = 7; int current_row = 0; int current_column = 0; while (command != 9) { printf("Comando:"); scanf("%d",&command); switch ( command ) { case 5: printf("Movimento:"); scanf("%d",&move); grafico[SIZE_ROW][SIZE_COLUMN] = draw ( pen , position , grafico[SIZE_ROW][SIZE_COLUMN] , move , current_row , current_column ); break; case 6: print ( grafico[SIZE_ROW][SIZE_COLUMN]); // call function print break; case 9: break; } } printf("The END");//the end of the programm return 0; } int draw ( int pen , int position , int grafico[][SIZE_COLUMN] , int move , int current_row , int current_column ) { int x; int y; if (pen == 2) { switch (position ) { case 3: for (x = current_row ;x > move ;x--) { if ( current_row > 0 && x < SIZE_COLUMN) { grafico[x][current_column] = 1; } else { break; } } break; case 4: for ( x = current_row;x < move;x++) { if (current_row > 0 && x < SIZE_COLUMN ) { grafico[x][current_column] = 1; } else { break; } } break; case 7: for ( x = current_column;x > move;x--) { if (current_column > 0 && x < SIZE_COLUMN ) { grafico[current_row][x] = 1; } else { break; } } break; case 8: for ( x = current_column;x < move;x++) { if ( current_column > 0 && x < SIZE_COLUMN ) { grafico[current_row][x] = 1; } else { break; } } break; } } else { switch (position ) { case 3: for (x = current_row;x > move;x--) { if ( current_row > 0 && x < SIZE_COLUMN) { grafico[x][current_column] = 0; } else { break; } } break; case 4: for ( x = current_row;x < move;x++) { if ( current_row > 0 && x < SIZE_COLUMN) { grafico[x][current_column] = 0; } else { break; } } break; case 7: for ( x = current_column;x > move;x--) { if (current_column > 0 && x < SIZE_COLUMN ) { grafico[current_row][x] = 0; } else { break; } } break; case 8: for ( x = current_column;x < move;x++) { if ( current_column > 0 && x < SIZE_COLUMN) { grafico[current_row][x] = 0; } else { break; } } break; } } return grafico[SIZE_ROW][SIZE_COLUMN]; } int print ( int grafico[SIZE_ROW][SIZE_COLUMN] ) { int x = 0; int y = 0; for ( x = 0;x < SIZE_ROW;x++) { for ( y = 0; y < SIZE_COLUMN;y++) { if ( grafico[x][y] == 1) { printf("*"); } } } } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2010
Messaggi: 1609
|
Nel main grafico viene dichiarato come int e non come array
Inviato dal mio GT-N5100 utilizzando Tapatalk
__________________
Trattative nel mercatino: IronHead - fybpeppe - xcavax Utenti assolutamente DA EVITARE: devilred "Chi c**a sott' 'a neve, pure si ffa 'a bbuca e poi 'a copre, quanno 'a neve se scioje, 'a mm***a vie' sempre fori" T. Milian |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Dec 2013
Messaggi: 90
|
draw ritorna un elemento di graphic che non esiste, per passare la matrice basta il nome e non va aggiunta nessuna parentesi quadra
in piu usi !a matrice non inizializzata. che compilatore usi? |
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: Jun 2015
Messaggi: 3
|
Ok grazie sono riuscito a risolvere.
|
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Jun 2015
Messaggi: 3
|
Scusate ho ancora un problema. Non mi imposta gli array uguale a 1 nella funzione draw
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:37.