Ciao a tutti, ho provato a risolvere il problema, ma non capisco cos'è che non funzioni. Non è un problema di analisi, il problema è semplice. Ho sbagliato a strutturare il programma? Ecco l'esercizio:

- Una ditta produce pacchetti di sale. Tali pacchetti devono contenere 1 Kg di sale con una tolleranza in più o in meno del 2%. Costruisci un algoritmo che, data in ingresso la sequenza dei pesi dei pacchetti (che termina con 0), fornisca:
1) I pacchetti di peso corretto, sottopeso e sovrappeso;
2) Il peso totale della merce nei pacchetti a norma ed il peso totale dei pacchetti fuori norma;

Ecco il mio algoritmo: (L'unica cosa di cui non ho tenuto conto è 'la sequenza che termina con 0 dei pacchetti', che non ho capito a cosa serve, cosa significa, e come inserire una condizione simile.. mi aiutereste?)

codice:
#include <iostream> 
using namespace std; 

int main () { 
   float peso, somma, somma2, cont=0, num; 
   int flag, n; 
    
   cout <<endl; 
   cout <<"Quanti pacchetti vuoi inserire?"<<endl; 
   cin >> n; 
    
   while (cont<n) { 
       
      cout <<"Inserisci il peso del pacchetto di sale in Kg."<<endl; 
      cin >> peso; 
       
      cont=cont+1; 
       
      if (peso==1) { 
         cout <<"Il pacchetto è in norma"<<endl; 
         flag=0; 
         peso=num; 
      } 
      if (peso>1) { 
         cout <<"Il pacchetto è sovrappeso"<<endl; 
         flag=1; 
      } 
      if (peso<1)   { 
         cout <<"Il pacchetto è sottopeso"<<endl; 
         flag=1; 
      } 
   } 
    
   if (flag==0) { 
      somma=somma+num; 
      cout <<"Il peso dei pacchetti in norma è "<<somma<<endl; 
   } 
   if (flag==1) { 
      somma2=somma2+peso; 
      cout <<"Il peso dei pacchetti fuori norma è "<<somma<<endl; 
   } 
    
   return 0; 
   system ("Pause"); 
}