EXERCICE X

STRUCTURES


1.      Exemple 1. Entrer les données (nom et numéro) de deux étudiants en utilisant le type structure.. Afficher les données d’étudiant dont le numéro est plus grand.

 

#include <stdio.h>

typedef struct

{   char  name[20];                                                                               

     int   nmbr;                                                                                   

} student;

student inputstr(void);

void outputstr(student *);

void main()

{   student man1, man2, *s_ptr;                                

     printf("Entrer les données du premier étudiant ");

     man1 = inputstr();

     printf("Nom:   %s\n",man1.name);

     printf("Numéro: %d\n",man1.nmbr);

     printf("\n Entrer les donneé du deuxième étudiant.");

     man2 = inputstr();

     printf("Nom:   %s\n",man2.name);

     printf("Numéro:  %d\n",man2.nmbr);

     s_ptr=(man1.nmbr>man2.nmbr)?&man1:&man2;

     printf("\nL’étudiant dont le numéro est plus grand:\n");

     outputstr(s_ptr);

}

student inputstr(void)

{   student a={0};                                                              

     printf("\n nom=> ");

     gets(a.name);

     printf(" numéro => ");

     scanf("%d",&a.nmbr);

     fflush(stdin);

     return (a);

}

void outputstr(student *ptr_str)                                          

{   printf("Nom d’étudiant:   %s\n",ptr_str -> name);

     printf("Numéro d’étudiant:  %d\n", ptr_str -> nmbr);

}

2.      Exemple 2. Modifier le programme d’exemple 1 en ajoutant un troisième champ de la structure - note. Afficher l’étudiant dont la note est plus petite.

3.      Exemple 3. Créer une liste des données des fonctionnaires d'une société. L'information pour chaque fonctionnaire est::nom, adresse, numéro (EGN). Afficher l’informtion du fonctionnaire dont le EGN est égal a un EGN donné ou bien une message.

 


#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <alloc.h>

#include <stdlib.h>

#define MAX 100

#define RET ""

struct adresse

 {    char ville [20];

      char rue[20];

      int num;

 };

typedef struct

{     char nom[30];

      struct adresse adr;

      char egn[11];

} fonc;

void entrer(fonc *s[],int *n);

void sortir(fonc *s[],int n);

void sortir_el(fonc *s);

void chercher(fonc *s[],int n,char egn_d[]);

void main()

 { int n;

      char egn_d[11];

      fonc *tab[MAX];

      printf("\n Entrer les donnees des "

             "fonctionnaires.\n ");

      entrer(tab,&n);

      printf("\n La liste donnee\n");

      sortir(tab,n);

      printf("Entrer egn donne:");

      gets(egn_d);

      chercher(tab,n,egn_d);

}

void entrer(fonc *s[],int *n)

 { char *t;

      *n=0;

      while(printf("Entrer Nom ou bien RET:"),

                  s[*n]=(fonc*)malloc(sizeof(fonc)),

                  strcmp(gets(s[*n]->nom),RET)!=0&&*n<MAX)

       {    printf("Entrer Ville:");

            gets(s[*n]->adr.ville);

            printf("Entrer Rue:");

            gets(s[*n]->adr.rue);

            printf("Entrer Numero:");

            s[*n]->adr.num=atof(gets(t));

            printf("Entrer EGN:");

            gets(s[*n]->egn);

            (*n)++;

            if(*n==MAX) break;

       }

  }

void sortir(fonc *s[],int n)

 { int i;

      for(i=0;i<n;i++)

       {

            sortir_el(s[i]);

       }

}

void sortir_el(fonc *s)

 {    printf("Nom: %s\n",s -> nom);

            printf("Ville:  %s\n",s -> adr.ville);

            printf("Rue:   %s\n",s -> adr.rue);

            printf("Numero: %d\n",s -> adr.num);

            printf("EGN:    %s\n",s -> egn);

 }

void chercher(fonc *s[],int n,char egn_d[])

 {

      int i;

            for (i=0; i<n;i++)

                  if (strcmp(s[i]->egn,egn_d)==0)

                   { printf("On a trouve \n");

                        sortir_el(s[i]);

                        return;

                    }

            printf("On n'a pas trouve \n");

}

 

4.      Exemple 4. Déclarer un tableau d'éléments de type structuré. Chaque structure est composée des champs suivants: nom, prix, année de la production du médicament. Afficher les informations des médicaments dont le prix est inférieur d'un prix donné.


Page précédente             Page suivante                        Sommaire