DOMANDA media, somma, somma numeri pari e dispari

  • Autore discussione Autore discussione MPG
  • Data d'inizio Data d'inizio
Pubblicità

MPG

Utente Attivo
Messaggi
566
Reazioni
4
Punteggio
55
Dunque dato un numero n (ho messo 5 ad esempio io) trovare la media, la somma , e la somma dei numeri dispari e pari. Non mi viene la somma dei pari e dispari, cosa sbaglio? Magari anche il tutto si puo' semplificare.....
Grazie a tutti di nuovo e a questo bellissimo e istruttivo forum.

Codice:
#include <iostream>
using namespace std;

int main() {
  int a,b,c,d,e,x,y,pari,dispari;
  cout << "Inserisci il primo numero: ";
  cin >> a;
  cout << "Inserisci il secondo numero: ";
  cin >> b;
  cout << "Inserisci il terzo numero: ";
  cin >> c;
  cout << "Inserisci il quarto numero: ";
  cin >> d;
  cout << "Inserisci il quinto numero: ";
  cin >> e;
  x= a+b+c+d+e;
  y= x/5;
  if (a%2==0) {
    pari=pari+a;
  }
  else {
    dispari=dispari+a;
  }
  if (b%2==0) {
    pari=pari+b;
  }
  else {
    dispari=dispari+b;
  }
  if (c%2==0) {
    pari=pari+c;
  }
  else {
    dispari=dispari+c;
  }
  if (d%2==0) {
    pari=pari+d;
  }
  else {
    dispari=dispari+d;
  }
  if (e%2==0) {
    pari=pari+e;
  }
  else {
    dispari=dispari+e;
  }
  cout << "\nLa somma dei 5 numeri e': ";
  cout << x;
  cout << "\nLa media dei 5 numeri e' : ";
  cout << y;
  cout << "\nLa somma dei numeri dispari fra i 5 numeri e': ";
  cout << dispari;
  cout << "\nLa somma dei numeri pari fra i 5 numeri e': ";
  cout << pari;
}
 
Pensavo di scrivere qualcosa cosi' cercando di capire il for (che pero' il prof non ha ancora insegnato) magari anche solo per creare un programmino per stampare la somma dei numeri dispari e numeri pari ma non mi viene cosi:
Codice:
#include <iostream>

using namespace std;

int main()
{
   int MaxNumero = 0; 
int SommaPari=0;
int SommaDispari=0;
int numero;

cin >>numero;
while (MaxNumero<=5)
//for(numero=1; numero<=MaxNumero; numero++)
{
        cin>>numero;
        if(numero%2==0) 
{SommaPari+=numero;
MaxNumero++;
}
else (numero%2!=0);
{SommaDispari+=numero;
MaxNumero++;
}
cout<<"la somma dei dispari e':  " <<SommaPari;
cout<<"la somma dei pari e':  "<<SommaDispari;
 
Ultima modifica:
Trovato la somma pari e dispari
Codice:
#include <iostream>

using namespace std;

int main()
{
   int MaxNumero = 0;
int SommaPari=0;
int SommaDispari=0;
int numero;


while (MaxNumero<5)
//for(numero=1; numero<=MaxNumero; numero++)
{
        cin>>numero;
        if(numero%2==0)
{SommaPari+=numero;
MaxNumero++;
}
else 
{SommaDispari+=numero;
MaxNumero++;
}
cout<<"la somma dei pari e':  " <<SommaPari<<endl;
cout<<"la somma dei dispari e':  "<<SommaDispari<<endl;
}
}
 
Chi la dura la vince......

Codice:
#include <iostream>
using namespace std;

int main() {
 
  int numero;
  int SommaPari=0;
int SommaDispari=0;
int MaxNumero=0;

while (MaxNumero<5)

{
        cout<<"Inserisci il numero:   ";
        cin>>numero;
        if(numero%2==0) 
{SommaPari+=numero;
MaxNumero++;
}
else 
{SommaDispari+=numero;
MaxNumero++;
}
  }

  cout << "\nLa somma dei 5 numeri e': ";
  cout << SommaPari+SommaDispari;
  cout << "\nLa media dei 5 numeri e' : ";
  cout << (SommaPari+SommaDispari)/MaxNumero;
  cout << "\nLa somma dei numeri dispari fra i 5 numeri e':  ";
  cout << SommaDispari;
  cout << "\nLa somma dei numeri pari fra i 5 numeri e': ";
  cout << SommaPari;
}
 
Il numero di valori che leggi lo sai già a inizio del ciclo di lettura, per cui quella variabile "MaxNumero" usata in quel modo non dice molto.
Se metti MaxNumero = 5 e poi iteri con un for su un contatore< MaxNumero ottieni un codice più pulito, e puoi parametrizzare il programma così come anche le stringhe di output.
Codice:
int main() {
    int numero;
    int SommaPari=0;
    int SommaDispari=0;
    int MaxNumero=5;

    for (int i = 0; i<MaxNumero; i++){
        cout<<"Inserisci il numero:   ";
        cin>>numero;
        if(numero%2==0)
            SommaPari+=numero;
        else
            SommaDispari+=numero;
    }

  cout << "\nLa somma dei "<<MaxNumero<<" numeri e': ";
  cout << SommaPari+SommaDispari;
  cout << "\nLa media dei "<<MaxNumero<<" numeri e' : ";
  cout << (SommaPari+SommaDispari)/MaxNumero;
  cout << "\nLa somma dei numeri dispari fra i "<<MaxNumero<<" numeri e':  ";
  cout << SommaDispari;
  cout << "\nLa somma dei numeri pari fra i "<<MaxNumero<<" numeri e': ";
  cout << SommaPari;
}
 
La funzione for come detto il prof non l'ha ancora spiegata , ti ringrazio della puntualizzazione serve serve imparare.
 
La funzione for come detto il prof non l'ha ancora spiegata , ti ringrazio della puntualizzazione serve serve imparare.

Occhio che for, while, if, ecc... sono costrutti del linguaggio ( statements in inglese ) e non funzioni.

Ovviamente è una differenza fondamentalmente teorica ( e ci sono linguaggi in cui sono effettivamente funzioni o addirittura sono implementati come macro ) ma è importante quando si parla di C/C++ e altri linguaggi imperativi.
 
Nel tuo codice originale Hai commesso un errore molto comune, ossia hai utilizzato una variabile senza inizializzarla, nel tuo caso le variabili pari e dispari.
Attento alle istruzioni tipo

pari=pari+a

Funziona solo se la variabile pari è zero. Ci sono opzioni del compilatore che avvisano errori di questo tipo. Quando sommi qualcosa a una variabile, ricorda sempre di inizializzarla a zero (come hai fatto quando hai usato il ciclo). Questo vale per le variabili automatiche, ossia quelle dichiarate all'interno di una funzione (ma non voglio confonderti maggiormente le idee).
 
Nel tuo codice originale Hai commesso un errore molto comune, ossia hai utilizzato una variabile senza inizializzarla, nel tuo caso le variabili pari e dispari.
Attento alle istruzioni tipo

pari=pari+a

Funziona solo se la variabile pari è zero. Ci sono opzioni del compilatore che avvisano errori di questo tipo. Quando sommi qualcosa a una variabile, ricorda sempre di inizializzarla a zero (come hai fatto quando hai usato il ciclo). Questo vale per le variabili automatiche, ossia quelle dichiarate all'interno di una funzione (ma non voglio confonderti maggiormente le idee).

Scusa nn ho bene capito , non ho una variabile pari o dispari.....
 
Pubblicità
Pubblicità
Indietro
Top