Untitled
unknown
plain_text
10 months ago
1.2 kB
5
Indexable
/*
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;
}Editor is loading...
Leave a Comment