EX: Array

di il
8 risposte

EX: Array

Chi sa darmi una mano?


Scrivere una funzione in linguaggio C denominata somma_dei_pari che,
presi in ingresso un array di interi arr (tutti positivi) e la sua lunghezza n, restituisca un intero che
sia la somma dei soli elementi pari di arr. La funzione deve restituire -1 nel caso in cui arr non
abbia elementi pari. Si vedano gli esempi seguenti:

arr = {1,2,3} somma_dei_pari(arr) --> 2 arr = {40,50} somma_dei_pari(arr) --> 90
arr = {11,3} somma_dei_pari(arr) --> -1 arr = {82,7,4} somma_dei_pari(arr) --> 86

8 Risposte

  • Re: EX: Array

    Cnt= 0

    Per ogni elemento dell'array{
    Se elemento è pari{
    Cnt = Cnt + elemento
    }
    }

    Se Cnt==0{
    Cnt =(-1)
    }
  • Re: EX: Array

    Io aggiungo il prototipo della funzione, in modo che piergozzo abbia tutti i mattoncini da mettere insieme...
    int somma_dei_pari(int *arr, int n) 
  • Re: EX: Array

    #include<stdio.h>
     int somma_pari(int v[] , int n);
     int main() {
     int v [] = {4, 6, 8, 7 ,3};
     int* v1  = somma_pari(v);
     if (v1 == -1)
    	printf("-1");	
    else 
    		printf("La somma e\'%d" , v1);
     return 0;
     
     int somma_pari(int v[] , int n){
    	int i , somma = 0;
    	int v1;
    	for (i=0; i<n; i++) {
    		if((a/2) !== 0) 
    			return -1;	
    		if (a/2 == 0) 
    			somma += v1[i]
    			}
    		return somma;
    }		
    		
  • Re: EX: Array

    Questa è la mia soluzione, mi da un sacco di errori. Dove sbaglio?
  • Re: EX: Array

    Così su due piedi si vede che manca la parentesi graffa per la chiusura del corpo della main().
    Comunque per risolvere gli errori del compilatore ti conviene prendere in considerazione solo il primo errore perchè alle volte risolto il primo si risolve tutto
  • Re: EX: Array

    A dir la verità è sbagliata un po' di roba.

    Questo è il codice corretto
    #include<stdio.h>
    
    int somma_pari(int v[] , int n);
    
    int main()
    {
        int v [] = {4, 6, 8, 7 ,3};
        int v1  = somma_pari(v,5);
    
        if (v1 == -1)
            printf("-1");
        else
            printf("La somma e\'%d" , v1);
    
        return 0;
    }
    
    int somma_pari(int v[] , int n)
    {
        int i , somma = 0;
    
        for (i=0; i<n; i++)
        {
    
            if (v[i]%2 == 0)
            {
                somma += v[i];
            }
    
        }
    
        if(somma == 0)
            return -1;
    
        return somma;
    }
    

    Ti consiglio di leggerlo e di tentare di capirlo. Quello che non capisci ristudialo con più attenzione
  • Re: EX: Array

    Grazie mille, il fatto è che sono uno studente di Ingegneria Meccanica e questo è il mio ultimo esame, che tra l'altro è un esame di quelli a scelta libera, che scelsi perché pensavo fosse più tranquillo.
    Ormai devo farlo per forza.
    Se non vi dispiace, posso postare altri quesiti in caso ne vada incontro?
  • Re: EX: Array

    Sicuramente puoi postare, il forum è fatto per questo, ma non per avere soluzioni complete e pronte, semmai per ragionare insieme.
Devi accedere o registrarti per scrivere nel forum
8 risposte