Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337

    [C] array bidimensionale

    volevo inserire 6 parole di massiom 6 lettere in un array bidimensionale, avrei dovuto usare una getchar?
    codice:
    #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]);
    		}
    	}
    
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    ho provato così ma continua a non funzionare:

    codice:
    #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]);
    		}
    	}
    
    }

  3. #3
    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).

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    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é?

    codice:
    	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

  5. #5
    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?

    propostarova a invertire gli indici nell'array

    cioe' scrivi array[j][i]

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    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

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    no invertire gli indici non cambia niente

  8. #8
    aggiungi un printf("\n") nel for + esterno dopo l'inserimento della parola

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    codice:
    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

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    meglio aprire un topic per la getchar

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.