Ciao a tutti.
Devo inserire in una matrice dei caratteri. Inizialmente ho fatto in questo modo:
facendo cioè la memorizzazione del carattere nella matrice in questo modo :codice:#include <stdio.h> #include <stdlib.h> #define n 100 #define m 100 int main() { char MAT[n][m]; int i, j, N, M; printf("Inserisci il numero di righe N : \n"); scanf("%d", &N); printf("Inserisci il numero di clonne M : \n"); scanf("%d", &M); printf("\n"); printf("Inserisci gli elementi della matrice MAT\n\n"); for ( i = 0; i < N; i++ ) { for ( j = 0; j < M; j++ ) { printf( "Inserisci il carattere [%d][%d] : \n", i, j ); scanf("%s", &MAT[i][j]); } } printf("La matrice MAT è : \n"); for ( i = 0; i < N; i++ ) { for ( j = 0; j < M; j++ ) { printf("%c", MAT[i][j]); printf("\t"); } printf("\n"); } return 0; }
ma a quanto pare non era la forma corretta in quanto mi chiedeva ciclicamente l'inserimento di 2 elementi per volta, poi ho fatto in questo modo:codice:scanf("%c", &MAT[i][j]);
cioè cambiando il tipo di dato da char a string e va tutto bene.codice:scanf("%s", &MAT[i][j]);
Il problema è che non mi è chiaro perchè non era corretto definire il tipo di dato char e invece va bene con string se gli elementi che inserisco sono di tipo char ??????
Grazie

Rispondi quotando