Untitled
/* Scrivere un sottoprogramma che riceve in ingresso un array di interi v, un intero k e qualsiasi altro parametro ritenuto necessario. Il sottoprogramma calcola e restituisce il massimo della somma di k elementi contigui dell’array. Nel caso in cui il numero degli elementi nell’array è inferiore a k il sottoprogramma restituisce la somma degli elementi presenti nell’array. Esempio: Ricevendo in ingresso v = [1 2 -4 1 3 -5 2 10 -1 0] k = 7 esistono quattro possibili somme di 7 elementi contigui e il valore massimo restituito dal sottoprogramma è pari a 10. */ #include <stdio.h> int massimaSomma(int *v, int k, int dim) { if(dim<=k) { int somma=0; for(int i=0; i<dim; i++) { somma+=v[i]; } return somma; } int sommaCorrente = 0; for(int i=0; i<k; i++) { sommaCorrente+=v[i]; } int massimo = sommaCorrente; for(i=k; i<dim; i++) { sommaCorrente = sommaCorrente + v[i] - v[i-k]; if(sommaCorrente > massimo) { massimo = sommaCorrente; } } return massimo; } int main() { // Write C code here printf("Try programiz.pro"); return 0; }
Leave a Comment