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