Untitled

 avatar
unknown
c_cpp
a month ago
1.4 kB
2
Indexable
/*
Scrivere un sottoprogramma baricentro che, ricevuto in ingresso un array di valori interi e qualsiasi altro parametro
ritenuto strettamente necessario, restituisce l’indice dell’elemento che fa da baricentro agli elementi dell’array, o -1
se questo non esiste. Definiamo baricentro di un array di h elementi, l’elemento in posizione i tale per cui:
v[0] + v[1] + ... + v[i] = v[i + 1] + v[i + 2] + … + v[h - 1]
Se dovessero esserci più baricentri, il sottoprogramma restituisce quello più a sinistra.
Esempio 1:
se il vettore contiene i valori: 1 5 10 4 4 2 6
il sottoprogramma restituisce il valore 2 (infatti la somma dei primi 3 elementi è uguale a 16 come quella degli ultimi 4
elementi).
Esempio 2:
se il vettore contiene i valori: 1 5 10 4 4 2 7
il sottoprogramma restituisce il valore -1, non essendoci alcun baricentro.
*/
#include <stdio.h>

int baricentro(int v[], int h)
{
    for(int i=0; i<h; i++)
    {
        int sommasx=0;
        int sommadx=0;
        
        for(int j=0; j<=i; j++)
        {
            sommasx += v[j];
        }
        
        for(int j=i+1; j<h; j++)
        {
             sommadx += v[j];
        }
        
        if(sommasx == sommadx)
        {
            return i;
        }
    }
    
    return -1;
}

int main() {
    // Write C code here
    printf("Try programiz.pro");

    return 0;
}
Leave a Comment