| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 
 | #include <stdio.h>
#define KMIN 1 /* taille de la suite des éléments consécutif à trouver*/
#define KMAX 100
#define VMIN 0  /* valeur d'un élément de la liste */
#define VMAX 100000
#define NMAX 10000
 
/* nombre de valeurs à entrer dans le tableau */
int nb_de_valeur(void) {
    int N=0;
    while ( N<KMIN || N>NMAX) {
        scanf("%d",&N);
    }
 
	return N;
}
 
/* nombre d'entiers consécutifs à lire dans le tableau */
int nb_entier_consecutif(void) {
    int K=0;
    while ( K<KMIN || K>KMAX) {
        scanf("%d",&K);
    }
 
	return K;
}
 
/* remplissage du tableau */
void le_tableau(int N,int tab[]) {
	int i;
	int val;
 
	for (i=0;i<N;i++) {
	    val = -1;
        while ( val < VMIN || val > VMAX ) {
            scanf("%d",&val);
        }
        tab[i] = val;
	}
}
 
/* lecture du tableau et recherche de la plus grande somme de K éléments consécutifs */
void la_somme(int K,int N, int tab[]){
	int somme = 0;
	int valeur_max = 0;
	int i, j;
	for (i=0; i<K; i++){
		for (j=0; j<N; j++){
			somme += tab[j];
				if( somme >= valeur_max)
				valeur_max = somme;
		}
	}
	printf("%d\n", valeur_max);
}
 
 
/* fonction main */
int main(void){
	int N, K;
	int tab[NMAX];
	N = nb_de_valeur();
	K = nb_entier_consecutif();
	le_tableau(N,tab);
	la_somme(K, N, tab);
	return 0;
} | 
Partager