Moyenne,somme,maximum
Jack65
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Jack65 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Jack65 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai essayé de faire cet exercice:
"Afficher la somme, la moyenne et le maximum d'un tableau de 20 réels"
Et j'essai de comprendre le corrigé que je ne comprends pas totalement.
Voici le corrigé:
#include<stdio.h>
int main()
int k,i
float moy,t[20],s,max;réels
printf("Rentrer 20 entiers"\n);s=0
for(k=0;k<20;k++)
{scanf("%f",&t[k]);
{s=s+t[k];
{moy=s/20;
max= t[0];
for(i=1;i<20;i++)
{if(t[i]-max<0)
{t[i]=max;
{
{
Mais je ne comprends pas vraiment ce que "i" et "k" représente dans t[i] et t[k],de manière générale,i et k sont des variables non ?
De même je ne comprend pas trop la notation s=s+t[k] je vois ça comme si on me disais que 1=1+2 mais je sais que ce n'est pas la vrai signification.
Toute aide sera la bienvenu.
j'ai essayé de faire cet exercice:
"Afficher la somme, la moyenne et le maximum d'un tableau de 20 réels"
Et j'essai de comprendre le corrigé que je ne comprends pas totalement.
Voici le corrigé:
#include<stdio.h>
int main()
int k,i
float moy,t[20],s,max;réels
printf("Rentrer 20 entiers"\n);s=0
for(k=0;k<20;k++)
{scanf("%f",&t[k]);
{s=s+t[k];
{moy=s/20;
max= t[0];
for(i=1;i<20;i++)
{if(t[i]-max<0)
{t[i]=max;
{
{
Mais je ne comprends pas vraiment ce que "i" et "k" représente dans t[i] et t[k],de manière générale,i et k sont des variables non ?
De même je ne comprend pas trop la notation s=s+t[k] je vois ça comme si on me disais que 1=1+2 mais je sais que ce n'est pas la vrai signification.
Toute aide sera la bienvenu.
A voir également:
- Moyenne,somme,maximum
- Excel moyenne - Guide
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Somme en anglais excel - Guide
- Somme excel ne fonctionne pas ✓ - Forum Excel
4 réponses
Bonjour, i et k représentent une variable dans la boucle mais sont utilisés pour accéder à un élément particulier d'un tableau.
Le premier élément du tableau est 0. Donc t[0] renvoie le premier élément.
Par contre (certes c'est minime ici), d'accord pour calculer la somme à chaque passage dans la boucle mais visiblement tu fais aussi le calcul du maximum à chaque fois, ce qui n'est pas performant. Tu peux parcourir le tableau une seule fois à la fin pour calculer le maximum.
Le premier élément du tableau est 0. Donc t[0] renvoie le premier élément.
Par contre (certes c'est minime ici), d'accord pour calculer la somme à chaque passage dans la boucle mais visiblement tu fais aussi le calcul du maximum à chaque fois, ce qui n'est pas performant. Tu peux parcourir le tableau une seule fois à la fin pour calculer le maximum.
Salut Jack65,
je ne comprend pas trop la notation s=s+t[k] je vois ça comme si on me disais que 1=1+2 mais je sais que ce n'est pas la vrai signification.
l'opérateur d'égalité c'est == en C.
= c'est l'opérateur d'affectation.
Cela signifie donc : affecte à la variable s la valeur de la variable s augmentée de la valeur contenue dans le tableau t à l'indice k. Donc la variable s est mise à jour, en additionnant sa valeur avec celle de t[k].
Dal
je ne comprend pas trop la notation s=s+t[k] je vois ça comme si on me disais que 1=1+2 mais je sais que ce n'est pas la vrai signification.
s=s+t[k]
l'opérateur d'égalité c'est == en C.
= c'est l'opérateur d'affectation.
Cela signifie donc : affecte à la variable s la valeur de la variable s augmentée de la valeur contenue dans le tableau t à l'indice k. Donc la variable s est mise à jour, en additionnant sa valeur avec celle de t[k].
Dal
Non, tu as dû mal recopier...
Les erreurs :
int k,i
Il manque le point virgule en fin de ligne.
float moy,t[20],s,max;réels
réels n'est pas à sa place ici. Probablement // devant ou mieux /*réels*/
printf("Rentrer 20 entiers"\n);s=0
Il manque le point virgule en fin de ligne.
Le \n doit se trouver avant le guillemet.
Certaines accolades sont dans le mauvais sens.
Et il manque le return 0; (peut-être une faute dans le bouquin ça).
Les erreurs :
int k,i
Il manque le point virgule en fin de ligne.
float moy,t[20],s,max;réels
réels n'est pas à sa place ici. Probablement // devant ou mieux /*réels*/
printf("Rentrer 20 entiers"\n);s=0
Il manque le point virgule en fin de ligne.
Le \n doit se trouver avant le guillemet.
Certaines accolades sont dans le mauvais sens.
Et il manque le return 0; (peut-être une faute dans le bouquin ça).