[DOMANDA] media, somma, somma numeri pari e dispari

#1
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;
}
 
#2
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:
#3
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;
}
}
 
#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
587
202
Hardware Utente
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
Hard Disk
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
Scheda Video
XFX RX480 GTR Black Edition
Scheda Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
Alimentatore
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
Sistema Operativo
Windows 10 64bit - Linux Mint 18
#5
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;
}
 
#7
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: Andretti60

Andretti60

Utente Attivo
2,138
1,544
Hardware Utente
#8
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: fabio93 e AITUS95
#9
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.....