Ciao a tutti.
Devo inserire in una matrice dei caratteri. Inizialmente ho fatto 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;
}
facendo cioè la memorizzazione del carattere nella matrice in questo modo :
codice:
scanf("%c", &MAT[i][j]);
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("%s", &MAT[i][j]);
cioè cambiando il tipo di dato da char a string e va tutto bene.
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