Langage c

Résolu
delavega470 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 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;
} */
A voir également:

2 réponses

Sugel Messages postés 4076 Date d'inscription   Statut Membre Dernière intervention   727
 
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
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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
Sugel Messages postés 4076 Date d'inscription   Statut Membre Dernière intervention   727
 
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
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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
delavega470 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   48
 
Merci beaucoup!!!
0
Sugel Messages postés 4076 Date d'inscription   Statut Membre Dernière intervention   727
 
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