Langage C,moy,max
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Langage C,moy,max



  1. #1
    invite9c5f7482

    Langage C,moy,max


    ------

    Bonjour,
    j'ai essayé de faire cette exercice:
    "Afficher la somme, la moyenne et le maximum d’un tableau de 20 réels"

    Et j'essai de "décortiqué" 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 ce qsue ça veut dire.
    Toute aide sera la bienvenu.

    -----

  2. #2
    acx01b

    Re : Langage C,moy,max

    Tu as un problème avec les boucles for ?
    Alors dans un premier temps oublie les boucles, écris le programme pour calculer la moyenne d'un tableau à trois éléments.

    Code:
    float tab[3];
    float somme;
    float moyenne;
    printf("rentre le nombre tab[0] : ");
    scanf("%f",&tab[0]);
    printf("rentre le nombre tab[1] : ");
    scanf("%f",&tab[1]);
    printf("rentre le nombre tab[2] : ");
    scanf("%f",&tab[2]);
    somme = tab[0] + tab[1] + tab[2];
    moyenne = somme / 3;
    printf("somme : %f, moyenne : %f", somme, moyenne);
    Ça va, ça tu comprends ?
    Ensuite tu réalises qu'avec 20 éléments ça va être long à écrire, autant utiliser une boucle for.

    Sinon, dans ton code je ne comprends pas ceci :
    for(i=1;i<20;i++)
    {if(t[i]-max<0)
    {t[i]=max;
    Dernière modification par acx01b ; 21/04/2014 à 19h42.

  3. #3
    invite9c5f7482

    Re : Langage C,moy,max

    Je comprend un peut ce que vous avez fais,et je pense que mon professeur a incrémenté avec "for(i=1...) après le reste,je ne sais pas ce qu'il a voulu écrire,mais en tous cas merci pour ton aide .

  4. #4
    invite8486e7c5

    Re : Langage C,moy,max

    Il y a une erreur dans "for(i=1;i<20;i++){if(t[i]-max<0){t[i]=max;}}"

    Cette boucle permet de trouver la valeur la plus grande. Donc ce n'est pas "t[i]=max;" mais "max=t[i];". C'est mieux d'écrire "for(i=1;i<20;i++){if(max < t[i]){max=t[i];}}". La valeur 'i' commence à 1 au lieu de 0 car cette indexe est utilisée pour initialiser la valeur "max".

    Pour info, "i" et "j" sont les indexes du tableau pour récupérer la valeur voulue. On peut écrire "t[i]" ou "*((float*)((int)(t) + i*sizeof(float)))". "t" correspond à l'adresse de base et "i" l'indexe à partir de cette adresse.

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : Langage C,moy,max

    Je pense qu'il y a également de gros problème de recopie de l'exercice, vu qu'aucune accolade ne se referme.

    A+

  7. #6
    polo974

    Re : Langage C,moy,max

    Il y a un gros problème sur la base de la programmation.
    En C comme en beaucoup de langage, quand l'informaticien écrit:
    a = a + b;
    il veut dire a va prendre la valeur (actuelle) de a plus la valeur de b

    dans le temps en pascal on aurait écrit un truc du genre:
    a:= a + b;

    le ":=" étant là pour bien montrer que ce n'est pas une égalité au sens mathématique, mais un affectation...


    Ensuite, pour le tableau:
    à la déclaration du tableau, on écrit t[20] pour dire qu'il s'agit d'un tableau de 20 cases.

    ensuite à l'utilisation, on dit:
    t[0] pour la première case,
    t[19] pour la dernière,
    t[20] pour faire hurler le prof
    et enfin t[i] pour la ième case du tableau (en commençant à 0 et en ne dépassant pas le max (19 pour un tableau de 20 cases)).
    Jusqu'ici tout va bien...

Discussions similaires

  1. le langage C est t il un langage qui a de l'avenir ?
    Par invitefba467f4 dans le forum Programmation et langages, Algorithmique
    Réponses: 13
    Dernier message: 12/11/2014, 13h01
  2. Langage C et langage HTML
    Par inviteafe88240 dans le forum Programmation et langages, Algorithmique
    Réponses: 19
    Dernier message: 12/08/2013, 20h07
  3. Langage C
    Par invite2c230910 dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 25/11/2012, 21h01
  4. de langage C en langage assembleur
    Par invite284746c1 dans le forum Électronique
    Réponses: 1
    Dernier message: 14/05/2009, 13h42