Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di bovy
    Registrato dal
    Nov 2006
    Messaggi
    269

    [C++] ciclo do-while urgente

    devo inserire degli elementi in un vettore e il ciclo di inserimento finisce quando l'utente digita 0, volevo sapere xke fatto così non mi funziona. potete correggermelo grazie

    do{

    cout <<"Inserisci un numero numero" << endl;
    cin >> vett[indice];

    indice++;


    }while(vett[indice]>0);

  2. #2
    non va perchè controlli la posizione successiva avendo incrementato prima l'indice!!
    quindi } while(vett[indice-1]!=0);
    http://digilander.libero.it/vettolani

  3. #3

    Re: [C++] ciclo do-while urgente

    Originariamente inviato da bovy
    devo inserire degli elementi in un vettore e il ciclo di inserimento finisce quando l'utente digita 0, volevo sapere xke fatto così non mi funziona. potete correggermelo grazie

    do{

    cout <<"Inserisci un numero numero" << endl;
    cin >> vett[indice];

    indice++;


    }while(vett[indice]>0);
    Perchè assegni il valore a vett[indice] , incrementi la variabile-indice
    e quindi esegui il controllo sull'elemento del vettore successivo non
    ancora assegnato ( che può, quindi, contenere qualsiasi valore).

    Modificalo così
    codice:
    do{
    	cout <<"Inserisci un numero numero" << endl;
    	cin >> vett[indice];
    }while(vett[indice++]>0);
    Così prima effettui il controllo e poi incrementi l'indice.

    Opss.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  4. #4
    Utente di HTML.it L'avatar di bovy
    Registrato dal
    Nov 2006
    Messaggi
    269
    grazie mille...
    adesso però non mi fa più quello che deve fare, perchè se metto 10 e 5 come elementi del vettore mi dice massimo 10 minimo 0 e media 4

    #include <iostream.h>

    main()
    {
    int max; //Numero più grande
    int min; //Numero più piccolo
    int media; //media dei numeri
    int somma; //somma dei numeri
    int vett[100]; //Vettore
    int size; //Grandezza vettore
    int cont; //Contatore
    int indice; //Contatore
    int i; //Contatore
    int num;

    //Inizializzazione variabili
    max = 0;
    min = 1000;
    media = 0;
    somma = 0;
    cont = 0;
    indice = 0;

    //Fine Inizializzazione

    do{

    cout <<"Inserisci un numero numero" << endl;
    cin >> vett[indice];

    indice++;


    } while(vett[indice-1]!=0);

    for(cont = 0; cont<indice; cont++)
    {
    if(vett[cont] > max)
    {
    max = vett[cont];
    if(vett[cont] < min)
    {
    min = vett[cont];
    }
    } else {
    if(vett[cont] < min)
    {
    min = vett[cont];
    }
    }
    }

    size = indice;

    for(i=0; i < size; i++)
    {
    somma = somma + vett[i];
    }

    media = (somma - 1)/size;

    cout << "Il numero maggiore è:" << max << endl;
    cout << "Il numero minore è:" << min << endl;
    cout << "La media è:" << media << endl;

    getchar();
    getchar();

    }

  5. #5
    Utente di HTML.it L'avatar di bovy
    Registrato dal
    Nov 2006
    Messaggi
    269
    mi potreste dire x favore xke non fa quello che dovrebbe? grazie

  6. #6
    codice:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    	int max; //Numero più grande
    	int min; //Numero più piccolo
    	int media; //media dei numeri
    	int somma; //somma dei numeri
    	int vett[100]; //Vettore
    	int indice = 0; //Contatore
    	int i; //Contatore
    	int num;
    
    	do
    	{
    		cout<<"Inserisci un numero numero : ";
    		cin>>vett[indice];
    	}
    	while( vett[indice++]!=0 && indice<100);
    
    	indice--;
    	if( indice>0 )
    	{
    		min=vett[0];
    		max=min;
    		somma = 0;
    
    		for( i=0; i<indice; i++)
    		{
    			if(vett[i] > max)
    				max = vett[i];
    			if(vett[i] < min)
    				min = vett[i];
    			somma = somma + vett[i];
    		}
    
    		media = somma/indice;
    
    		cout<<"Il numero maggiore e' : "<<max<<endl;
    		cout<<"  Il numero minore e' : "<<min<<endl;
    		cout<<"          La media e' : "<<media<<endl;
    	}
    	else
    		cout<<"Nessun valore inserito"<<endl;
    
    	getchar();
    	getchar();
    	return 0;
    }
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  7. #7
    Utente di HTML.it L'avatar di bovy
    Registrato dal
    Nov 2006
    Messaggi
    269
    cosa significa indice--; ??

  8. #8
    Originariamente inviato da bovy
    cosa significa indice--; ??
    Decrementa la variabile indice, così da non considerare il valore 0, che non è un
    valore ma la condizione di uscita dal ciclo.
    Aspetta ho notato un possibile bug.
    Nell' eventualità dell'inserimento di 100 elementi ( da tastiera ) il contatore
    non andrebbe decrementato.
    Sostituisci la riga :
    codice:
    	indice--;
    con
    codice:
    	if(indice<100) 
    		indice--;
    Ciao.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  9. #9
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    che poi se usi <= nel ciclo for va decrementato di 2 visto che va scartato l'incremento così come lo 0...

    size e num che le usi a fare? hai dichiarato una quantità inutile di variabili...

  10. #10
    Originariamente inviato da Lak3d
    che poi se usi <= nel ciclo for va decrementato di 2 visto che va scartato l'incremento così come lo 0...
    Ma dove lo hai visto il <=
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

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.