Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema con il mio codice (Calcolatore di medie)
Forum - C/C++ - Problema con il mio codice (Calcolatore di medie)

Avatar
Th3Tux94 (Normal User)
Newbie


Messaggi: 2
Iscritto: 14/11/2010

Segnala al moderatore
Postato alle 15:07
Domenica, 21/11/2010
Salve,
sto facendo un programma che legge materie e voti (e ne calcola la media) fino a quando l'utente non sceglie di uscire ma non sembra funzionare molto, ho cercato ma non ho trovato nessun errore, qualcuno mi può aiutare?

Codice sorgente - presumibilmente C++

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <string> // LIBRERIA PER GESTIRE LE STRINGHE
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.     int scelta,nvoti,i,im;
  10.     float sommam,sommav,voto,mediam,mediat;
  11.     string materia; // Variabile di tipo string per leggere i nomi delle materie
  12.     im=0;
  13.     sommam=0;
  14.     do {
  15.         cout << "Inserisci il nome della materia: ";
  16.         cin >> materia;
  17.         do {
  18.             cout << "Inserisci il numeri dei voti che hai per la materia " << materia << ": ";
  19.             cin >> nvoti;
  20.             } while (nvoti<=0); // Questo ciclo Do-While controlla che il numero dei voti sia maggiore di 0
  21.         i=0;
  22.         sommav=0;
  23.         while(i<nvoti) { // Questo ciclo serve per leggere tutti i voti e sommarli
  24.                    do {
  25.                        cout << "Inserisci un voto: ";
  26.                        cin >> voto;
  27.                        } while (voto<0); // Questo ciclo Do-While fa in modo che il programma non accetti voti minori di 0
  28.                    sommav=sommav+voto;
  29.                    i=i+1;
  30.                          }
  31.         mediam=sommav/nvoti; // Il programma calcola la media dei voti precedentemente letti
  32.         cout << "La tua media di " << materia << " equivale a "<< mediam << ".\n";
  33.         sommam=sommam+mediam;
  34.         im=im+1;
  35.         do {  // Ciclo che chiede all utente se vuole calcolare altre medie o se vuole andare avanti
  36.             cout << "Vuoi continuare a calcolare altre medie? (1-Si') (2-No)";
  37.             cin >> scelta;
  38.             } while (scelta=!1 && scelta!=2);
  39.         } while (scelta==1);
  40.         mediat=sommam/im; // Il programma calcola la media totale di tutte le materia
  41.         cout << "La media totale, riguardante tutte le materie, equivale a " << mediat << ".\n";
  42.                          
  43.     system("PAUSE");
  44.     return EXIT_SUCCESS;
  45. }



Allora, qualcuno mi può aiutare? Sembra ci sia qualche problema con il ciclo che legge la scelta dell'utente (continuare o meno).

Ultima modifica effettuata da Th3Tux94 il 21/11/2010 alle 15:13
PM
Avatar
crashoverride (Normal User)
Pro


Messaggi: 152
Iscritto: 09/07/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 15:19
Domenica, 21/11/2010
Riga 38 hai scritto  while (scelta=!1 && scelta!=2); ma  è sbagliato, devi mettere
                            while(scelta != 1 && scelta != 2);

PM
Avatar
Th3Tux94 (Normal User)
Newbie


Messaggi: 2
Iscritto: 14/11/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 15:22
Domenica, 21/11/2010
Testo quotato

Postato originariamente da crashoverride:

Riga 38 hai scritto  while (scelta=!1 && scelta!=2); ma  è sbagliato, devi mettere
                            while(scelta != 1 && scelta != 2);


Ecco l'errore!

Per sbaglio avevo invertito un ! con un = e poi mi è sfuggito.

Grazie mille!

PM
Avatar
crashoverride (Normal User)
Pro


Messaggi: 152
Iscritto: 09/07/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 15:29
Domenica, 21/11/2010
Pregoooo :)

PM