Valore che è la somma di tutti gli altri... mi aiutate? :(

di il
1 risposte

Valore che è la somma di tutti gli altri... mi aiutate? :(

Scrivere un programma che legge n interi e verifichi se esista un valore dell’insieme che è
uguale alla somma di tutti gli altri....

Io ho provato il seguente... ma mi da errore... dove sbaglio?



#include <iostream>
using namespace std;
const int dim=10;
bool verifica(int);
int main ()
{

int n[dim];
for(int i=0; i<dim; i++)
cin>>n;
cout<<"Il vettore inserito e': ";
for(int i=0; i<dim; i++)
cout<<" ["<<n<<"] ";
for(int i=0; i<dim; i++){
n;
if (verifica(n)==true)
cout<<"Il valore è: "<<n;
else
cout<<"Non c'è nessun valore per cui... bla bla bla";
}
system("PAUSE");
}

bool verifica(int p[dim]){
int somma=0;
for(int i=0; i<dim; i++)
somma+=p;
for(int i=0; i<dim; i++)
if (somma-p==p)
return true;
else
return false;
}

1 Risposte

  • Re: Valore che è la somma di tutti gli altri... mi aiutate? :(

    Ciao, hai fatto un po' di casino per un codice così semplice. È meglio che te lo riscrivo da capo:

    questa può essere la funzione che verifica se un numero è somma di tutti gli altri:
    
    int verifica(int p, int n, int * v){
    	int i;
    	int somma = 0;
    	
    	for (i = 0; i < n; i++){
    		
    		if (i != p)
    			somma += v[i];
    		
    	}
    	
    	if (somma == v[p])
    		return 1;
    	
    	return 0;
    	
    }
    
    e qua ti riporto un main di esempio per vedere come si usa la funzione:
    
    int main(){
    	
    	int i;
    	int v[10] = {1,2,3,4,5,6,7,8,9,45};
    	
    	for (i = 0; i < 10; i++){
    		
    		printf("%d\n", verifica(i, 10, v));
    		
    	}
    	
    	return 0;
    }
    
Devi accedere o registrarti per scrivere nel forum
1 risposte