PDA

Visualizza la versione completa : [C] Inserimento di parole in un array bidimensionale


{-_-}
29-10-2007, 17:51
volevo inserire 6 parole di massiom 6 lettere in un array bidimensionale, avrei dovuto usare una getchar?


#include <stdio.h>

char array[6][6];
int i , j;

int main(){

for (i=0; i<6; i++){
printf ("inserisci stirnga %d", (i+1));
for (j=0; j<6; j++){
scanf ("%s", &array[i][j]);
}
}

for (i=0; i<6; i++){
for (j=0; j<6; j++){
printf ("%s", array[i][j]);
}
}

}

{-_-}
29-10-2007, 17:56
ho provato così ma continua a non funzionare:



#include <stdio.h>

char array[6][6];
int i , j;

int main(){

for (i=0; i<6; i++){
printf ("inserisci stirnga %d", (i+1));
for (j=0; j<6; j++){
array[i][j]=getchar();
}
}

for (i=0; i<6; i++){
for (j=0; j<6; j++){
printf ("%s", array[i][j]);
}
}

}

duonovembre
29-10-2007, 17:57
ti basta un ciclo solo per l'inserimento

scanf("%6s",array[i]); (il 6 dovrebbe aggiungere un controllo di dimensione, ma se nn funge basta toglierlo).

{-_-}
29-10-2007, 18:01
si così come hai detto mi sembra più logico.

con la getchar ho fatto così, solo che per funzionare funziona, ma tra una parola e l'altra devo premere due volte enter, perché?



for (i=0; i<6; i++){
printf ("inserisci stirnga %d", (i+1));
for (j=0; j<6; j++){
array[i][j]=getchar();
}
}

for (i=0; i<6; i++){
for (j=0; j<6; j++){
printf ("%c", array[i][j]);
}
}


grazie

duonovembre
29-10-2007, 18:03
una considerazione ed una proposta:

considerazione: ma la getchar con il for legge + caratteri su uno stesso input oppure legge un carattere alla volta dopo l'invio?
cioe': su ciao, se chiamo 4 getchar lui legge c> i> a> o> oppure devo scrivere c, poi invio, poi i, poi invio, poi a, poi o nella stessa maniera?

proposta:prova a invertire gli indici nell'array

cioe' scrivi array[j][i]

{-_-}
29-10-2007, 18:05
con la gethcar se inserisci ciao lui legge c>i>a>o
non c'è bisogno di premere invio, ma non capisco perchè tra una parola e l'altra devo premere "10" volte invio.

provo con la proposta e poi ti dico, ma non sono fiducioso

{-_-}
29-10-2007, 18:06
no invertire gli indici non cambia niente :dhò:

duonovembre
29-10-2007, 18:12
aggiungi un printf("\n") nel for + esterno dopo l'inserimento della parola

{-_-}
29-10-2007, 18:15
for (i=0; i<6; i++){
printf ("inserisci stirnga %d \n", (i+1));

for (j=0; j<6; j++){
array[i][j]=getchar();
}
printf("\n");
}

se intendi così non mi sembra funzioni

{-_-}
29-10-2007, 18:21
meglio aprire un topic per la getchar

Loading