IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

programme d'etudiant en C !


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Par défaut programme d'etudiant en C !
    bonsoir,
    ce programme stock et affiche tous les etudiants inscrits a l'école !
    excusez-moi mais je n'ais pas reussi a afficher les etudiants !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    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
     
    # include <stdio.h>
    # define dim 50
    struct etudiant {
    	char mat[12];
    	char nom[12];
    	char pren[12];
    	char adr[13];
    };
    typedef struct etudiant etd;
    void etud_regist(etd T[dim],int n)
    {
    	int i;
    	printf("Donnez le nombre d eleve : ");
    	scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    		printf("donnez le matricule d eleve %d : ",i+1);
    		scanf("%s",T[i].mat);
    		printf("donnez le nom d eleve %d : ",i+1);
    		scanf("%s",T[i].nom);
    		printf("donnez le prenom d eleve %d : ",i+1);
    		scanf("%s",T[i].pren);
    		printf("donnez le adresse d eleve %d : ",i+1);
    		scanf("%s",T[i].adr);
    	}
    }
    void etud_affich(etd T[dim],int n)
    {
    	int i;
    	for(i=0;i<n;i++)
    	{
    		printf("le matricule d eleve %d : %s `\n",i+1,T[i].mat);
    		printf("le nom d eleve %d : %s \n",i+1,T[i].nom);
    		printf("le prenom d eleve %d : %s \n",i+1,T[i].pren);
    		printf("le adresse d eleve %d : %s \n",i+1,T[i].adr);
     
    	}
    }
     
     
     
    int main(void)
    {
    	int n;
    	etd T[dim];
    	etud_regist(T,n);
    	etud_affich(T,n);
    return 0;
    }

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par Dr walid Voir le message
    excusez-moi mais je n'ais pas reussi a afficher les etudiants !
    Et quelle est la question exactement ?

  3. #3
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    C'est tout a fait normal.

    Lorsque tu passe une variable a une fonction, elle est passer par copie, c'est a dire que le n dans la fonction appelante n'est pas le meme que le n dans la fonction appeler.

    donc, toute modification du n dans la fonction appeler n'aura aucune consequence sur le n de la fonction appelante.

    Pour creer un lien entre ces deux variable, il faut passer n en pointeur.
    Ainsi, tu aura le bon nombre d'etudiant lors de l'affichage.

    PS : Je rejoins la remarque precedente : j'aime pas quand me balance le code en disant "ca marche pas".

    Fais un effort la prochaine fois

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Par défaut
    oui mais
    on a pas encore etudier les pointeurs exist-il autre méthode pour resoudre ce probleme .

  5. #5
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Oui, il suffit de mettre le scanf s'occupant de 'n' dans le main, est non dans une fonction.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    int main(void)
    {
    	int n;
            /* scanf ici */
    	etd T[dim];
    	etud_regist(T,n);
    	etud_affich(T,n);
    return 0;
    }

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Par défaut
    merci enfin il a resolu mais je ne comprend pas
    pourqoui n

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Nashnash]Etudiant en programmation
    Par nashad dans le forum Présentations
    Réponses: 5
    Dernier message: 06/03/2015, 08h24
  2. Réponses: 6
    Dernier message: 16/04/2014, 13h36
  3. Etudiant en programmation de jeux-vidéo , j'ai visé trop haut ?
    Par kEep OnE dans le forum Développement 2D, 3D et Jeux
    Réponses: 17
    Dernier message: 02/12/2011, 09h13
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo