DOMANDA media, somma, somma numeri pari e dispari

MPG

Utente Attivo
544
4
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;
}
 

MPG

Utente Attivo
544
4
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:

MPG

Utente Attivo
544
4
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;
}
}
 

MPG

Utente Attivo
544
4
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;
}
 

1nd33d

Utente Attivo
653
279
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
HDD
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
GPU
XFX RX480 GTR Black Edition
Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
PSU
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
OS
Windows 10 64bit - Linux Mint 18
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;
}
 

MPG

Utente Attivo
544
4
La funzione for come detto il prof non l'ha ancora spiegata , ti ringrazio della puntualizzazione serve serve imparare.
 

pabloski

Utente Èlite
2,868
916
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.
 
  • Mi piace
Reazioni: Andretti60

Andretti60

Utente Èlite
6,440
5,091
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).
 
  • Mi piace
Reazioni: fabio93 e AITUS95

MPG

Utente Attivo
544
4
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.....
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili