Perchè se eseguo dinuovo il mio programma, ad ogni esecuzione successiva, mi somma i risultati delle esecuzioni precedenti?![]()
codice:#include <iostream> #include <stdlib.h> using namespace std; void input( int v[], int &r, int &k); void somma( int v[], int r, int k, float &som, int &ris); void output( int v[], int r, int k, float som, int ris); int main(){ char avv; int r,k; int v[100]; float som=0; int ris=0; do{ system ("cls"); //Intestazione cout<<"\n*******************************************************************************\n\n"; input(v,r,k); somma(v,r,k,som,ris); output(v,r,k,som,ris); //Riavvio cout<<"\n\n\n\n*******************************************************************************\n"; cout<<"Per riavviare il programma premere (s) e invio, altrimenti (n) invio:\t"; cin>>avv; }while(avv=='s' || avv=='S'); return 0; } //Siano assegnati in ingresso un vettore di interi V, di riempimento r, ed un intero k<r. void input( int v[], int &r, int &k){ cout<<"Inserisci il numero di elementi del vettore:\n"; cin>>r; cout<<"Riempi il vettore:\n"; for(int i=0; i<r; i++){ cout<<i+1<<") "; cin>>v[i]; } cout<<"Inserisci un valore K:\n"; cin>>k; } void somma( int v[], int r, int k, float &som, int &ris){ //Calcolo la somma S dei primi k elementi del vettore. for(int i=0; i<k; i++){ if(k<r){ som = som + v[i]; }} //Costruire un vettore W costituito dagli elementi di V di valore maggiore di S. for(int i=0; i<r; i++){ if(som<v[i]){ v[ris]=v[i]; ris++; }}} void output( int v[], int r, int k, float som, int ris){ if(k>r){ cout<<"Ripetere l' operazione inserendo un valore K<R.\n"; } else{ cout<<"Somma dei primi K elementi generata:\n"<<som<<"\n"; if(v[ris]<som){ cout<<"Vettore W=0.\n"; } else{ cout<<"Vettore W formato dai K elementi maggiori di S:\n"; for(int i=0; i<ris; i++){ cout<<v[i]<<"\n"; }}}}

Rispondi quotando
al massimo esiste una stringa di codice alternativa alla mia?
grazie mille, e grazie soprt. per quella stringa di codice, sono sicuro che mi tornerà utile 