Langage c

Résolu
delavega470 Messages postés 316 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à vous je voudrai avoir un coup de main svp !!
Je veux saisir 5 notes et faire afficher ces 5 notes mais c'est la dernière note seule qui s'affiche.
/*#include <stdio.h>
#include <stdlib.h>
int note , i ;
int main()
{
    printf("entrer les 5 notes!\n");
    for (i=0; i<5; i++)
    {
        scanf("%d",¬e);
    }

        printf("les notes sont %d",note);

    return 0;
} */

2 réponses

  1. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
     
    c'est logique, tu n'as pas créé 5 variables, tu écrase la même à chaque tour de boucle ;-)

    une version corrigée de ton code:
    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        int note[5];
        int i;
        printf("entrer les 5 notes!\n");
        for (i=0; i<5; i++)
        {
            scanf("%d",note+i);
        }
    
        puts("les notes sont :");
    
        for (i=0; i<5; i++)
        {
            printf("%d ",*(note+i));
        }
        return 0;
    }


    PS: évite absolument de créer des variables globales, c'est une très très mauvaise habitude !

    ------------------------------------------------------------------------------------
    "La peur mène à la colère. La colère mène à la haine. Et la haine ... mène à la souffrance." - Yoda
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Pour info, *(note+i) peut être remplacé par l'expression plus courte et plus lisible : note[i]
      N'oublie pas de mettre un '\n' avant le return 0; pour forcer l'affichage.
      Ou à défaut un petit fflush(stdout);
      0
    2. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
       
      effectivement :)

      pour le note+i, c'est un style; un moyen de ne pas oublier ce que ça veut vraiment dire, comment les listes occupent réellement la mémoire. Tu perds en lisibilité mais gagne en sens ^^

      après c'est vrai que c'est plus facile avec les crochets.

      Et merci pour le \n, je n'y avais jamais pensé !
      0
    3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Yep. D'un autre côté, cela laisse croire que note est un pointeur alors qu'il s'agit d'un tableau. Mais bon, grâce à l'arithmétique des pointeurs, on retombe sur nos pattes, et c'est le principal :-).
      0
  2. delavega470 Messages postés 316 Statut Membre 48
     
    Merci beaucoup!!!
    0
    1. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
       
      passe le sujet en résolu.

      PS:tu peux encore améliorer le code en décrémentant la variable dans la seconde boucle au lieu de la remettre à zéro.
      0