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";
             }}}}