Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    35

    [c++]inserire elementi in un array fino al momento che l'utente non digita 0

    ciao ragazzi devo fare il seguente es:
    memorizzare in un array una sequenza di numeri fino a che l'utente non digiti 0 e poi stamparli al contrario. ho fatto questo codice che va bene per l'inversione, ma non fino a che l'utente non digita 0; come posso fare per completare esattamente es??
    codice:
     
    #include <iostream>using namespace std;
    int main (int argc, char * const argv[]) {
    	int const size=5;
    	int vet[size];
    	int i=0;
    	while (i<size || vet[i]!=0) {
    		cin>>vet[i];
    		i=i+1;
    		}			
    	for (int a=size-1;a>=0 ;a--){
    		cout << vet[a];}
        return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao, ti posto una possibile soluzione: prova a ragionarci e se hai qualche dubbio ne riparliamo.

    codice:
    #include <iostream>
    using namespace std;
    
    
    int main (int argc, char * const argv[])
    {
        int const size=100;
        int vet[size];
        int i=0;
        int tmp=0;
        while (i<size)
        {
            cin>>tmp;
            if(tmp == 0) break;     /* se il valore letto e' 0 smetto di leggere */
            vet[i] = tmp;           /* altrimenti lo inserisco nel vettore e continuo */
            i=i+1;
        }
    
    
        for (int a=i-1; a>=0 ; a--)     /* avevo inserito (i) elementi, quindi comincio a leggere dalla posizione (i-1) e torno indietro */
        {
            cout << vet[a];
        }
        return 0;
    }
    Ultima modifica di minomic; 18-04-2014 a 21:15

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    35
    Quote Originariamente inviata da minomic Visualizza il messaggio
    Ciao, ti posto una possibile soluzione: prova a ragionarci e se hai qualche dubbio ne riparliamo.

    codice:
    #include <iostream>
    using namespace std;
    
    
    int main (int argc, char * const argv[])
    {
        int const size=100;
        int vet[size];
        int i=0;
        int tmp=0;
        while (i<size)
        {
            cin>>tmp;
            if(tmp == 0) break;     /* se il valore letto e' 0 smetto di leggere */
            vet[i] = tmp;           /* altrimenti lo inserisco nel vettore e continuo */
            i=i+1;
        }
    
    
        for (int a=i-1; a>=0 ; a--)     /* avevo inserito (i) elementi, quindi comincio a leggere dalla posizione (i-1) e torno indietro */
        {
            cout << vet[a];
        }
        return 0;
    }
    nussun dubbio grazie mille mi ero totalmente scordato del comando break
    Ultima modifica di enrico92; 18-04-2014 a 23:13

  4. #4
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Sì, così è abbastanza chiaro. Altrimenti puoi anche evitare di utilizzare il break (ad alcuni non piace) e mettere la condizione nel while. La cosa importante però è che tu faccia l'inserimento nel vettore solo se l'elemento è diverso da zero. Se invece è uguale a zero non lo inserisci, la condizione di permanenza nel while risulta falsa all'iterazione successiva e il programma passa alla fase di stampa dell'array.


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 © 2025 vBulletin Solutions, Inc. All rights reserved.