Untitled
/* 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