Ciao a tutti. Devo fare un programma che ha in input un array di elementi e k, e stampa a video la sequenza di somma massima. Esempio:
Inserisci n
6
Inserisci k
3
Il vettore ha questi valori:
5 3 1 3 2 7
La sequenza k = 3 di somma massima è: 3 2 7
Io ho fatto questo programma, ma c'è un problema:
codice:
#include <stdio.h>
#include <stdlib.h>
#define MAX 50
void carica(int vett[MAX], int n);
void stampa( int vett[MAX], int n);
void sequenza(int vett[MAX], int n, int k);
int main(void) {
int n, k, vett[MAX];
printf("Inserisci numero elementi del vettore\n");
scanf("%d", &n);
printf("Inserisci k\n");
scanf("%d", &k);
carica( vett, n);
stampa(vett, n);
sequenza( vett, n, k);
}
void sequenza(int vett[MAX], int n, int k) {
int i; int somma = 0; int max = 0; int c = 0; int p, q;
while(c + k != n - 1) {
for(i = 0 + c; i < k + c; i++) {
somma = somma + vett[i];
}
if(somma > max) {
max = somma;
p = c;
q = k + c;
}
somma = 0;
c++;
}
printf("La sequenza di somma massima: \n\n");
for(i = p; i < q; i++) {
printf("%d ", vett[i]);
}
return;
}
void stampa(int vett[MAX], int n) {
int i;
printf("Gli elementi del vettore sono: \n\n");
for(i = 0; i < n; i++) {
printf("%d ", vett[i]);
}
}
void carica(int vett[MAX], int n) {
int i; int valore;
for(i = 0; i < n; i++) {
printf("Inserisci numero\n");
scanf("%d", &valore);
vett[i] = valore;
}
}
Non so qual è l'errore. Qualcuno mi può aiutare ? Grazie.