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:
Non so qual è l'errore. Qualcuno mi può aiutare ? Grazie.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; } }

Rispondi quotando