Somma di Numeri primi

di il
7 risposte

Somma di Numeri primi

Salve. Devo svolgere questo esercizio:Scrivere un programma che legga da tastiera n numeri reali (n richiesto da tastiera) e stampi a video il massimo, il minimo e la media dei valori. Il programma funziona solo che il minimo è sbagliato il codice è il seguente:

#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
int main ()
{
	double n,num,max=0,min,media,sm;
	int cont;
	string scelta;
	do
	{
		cout<<"Quanti numeri devo esaminare?"<<endl;
		cin>>n;
		while (cont<n)
		{
			cout<<"Inserisci il numero"<<endl;
			cin>>num;
			if (num>max)
			{
				max=num;
			}
			else if (num<min)
			{
				min=num;
			}
			sm=sm+num;
			cont++;
		}
		media=(sm/n);
		cout<<"Il valore massimo e\' "<<max<<", il minimo e\' "<<min<<" e la media e\' "<<media<<" . Vuoi rieseguire il programma?"<<endl;
		cin>>scelta;
	} while (scelta=="si");
	system ("pause");
	return 0;
}
Spero possiate aiutarmi.

7 Risposte

  • Re: Somma di Numeri primi

    Il problema è che non inizializzi min! Ma i numeri primi cosa c'entrano?
  • Re: Somma di Numeri primi

    E a quanto dovrei inizializzare min? Comunque mi sono accorto dopo del titolo sbagliato.
  • Re: Somma di Numeri primi

    Io inizializzerei min e max con il primo valore inserito, perchè anche inizializzare max=0 non è corretto (se poi ti inseriscono solo valori negativi?)
  • Re: Somma di Numeri primi

    Ho fatto come dici tu ma non funziona.
    
    #include <iostream>
    #include <stdlib.h>
    #include <string>
    using namespace std;
    int main ()
    {
    	double n,num,max,min,media,sm;
    	int cont;
    	string scelta;
    	do
    	{
    		cout<<"Quanti numeri devo esaminare?"<<endl;
    		cin>>n;
    		while (cont<n)
    		{
    			cout<<"Inserisci il numero"<<endl;
    			cin>>num;
    			max=num;
    			min=num;
    			if (num>max)
    			{
    				max=num;
    			}
    			else if (num<min)
    			{
    				min=num;
    			}
    			sm=sm+num;
    			cont++;
    		}
    		media=(sm/n);
    		cout<<"Il valore massimo e\' "<<max<<", il minimo e\' "<<min<<" e la media e\' "<<media<<" . Vuoi rieseguire il programma?"<<endl;
    		cin>>scelta;
    	} while (scelta=="si");
    	system ("pause");
    	return 0;
    }
    
  • Re: Somma di Numeri primi

    Max e min li devi inizializzare solo al primo inserimento, quindi devi utilizzare una flag che ti indichi se siamo al primo inserimento oppure ad un successivo inserimento.
  • Re: Somma di Numeri primi

    Sto studiando da poco il c++ e non so usare i flag.
  • Re: Somma di Numeri primi

    Ti suggerisco di disegnare un flowchart dell'algoritmo e solo dopo passare all'implementazione in C/C++ o qualsiasi altro linguaggio. Comunque per flag intendo anche una banalissima variabile int o bool.
Devi accedere o registrarti per scrivere nel forum
7 risposte