Untitled
unknown
c_cpp
a year ago
1.4 kB
5
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;
}Editor is loading...
Leave a Comment