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 :

g un probleme avec l'affichage les tris aidez moi svp et le type enum


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut g un probleme avec l'affichage les tris aidez moi svp et le type enum
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    #define MAX 100
    typedef enum filiere {SM,SMI} filiere;
    //type adresse
     typedef struct adresse
      {
              int num_rue;
              char nom_rue[41];
              char ville[16];
      } adresse;
        //type etudiant
      typedef struct etudiant{
              char nom[26];
              char prenom[21];
              filiere fil;
              adresse adr;
              }
             etudiant;
    typedef etudiant liste[MAX];
    //lecture
    int lecture(liste v)
    {
        char ch[50],rep;
        int ajouter=1,i,f;
        for(i=0;i<MAX&&ajouter;i++)
        {
                                   printf("nom:");
                                   gets(ch);
                                   gets(v[i].nom);
                                   printf("prenom:");
                                   gets(v[i].prenom);
                                   printf("numero de la rue:");
                                   gets(ch);
                                   sscanf(ch,"%d",&v[i].adr.num_rue);
                                   printf("nom de la rue:");
                                   gets(v[i].adr.nom_rue);
                                   printf("ville:");
                                   gets(v[i].adr.ville);
                                   do{
                                                        printf("SMI:0,SM:1");
                                                        gets(ch);
                                                        sscanf(ch,"%d",&f);
                                                        }
                                                        while((f!=1)&&(f!=0));
                                                        if(f==1)
                                                        v[i].fil=SM;
                                                        else
                                                        v[i].fil=SMI;
                                                        do{
                                                                     printf("voulez vs ajouter un autre etudiant (O/N)");
                                                                     gets(ch);
                                                                     sscanf(ch,"%c",&rep);
                                                                     rep=toupper(rep);
                                                                     }
                                                                     while((rep!='O')&&(rep!='N'));
                                                                     if(rep=='N')
                                                                     ajouter=0;
                                                                     }
                                                                     return i;}
      //affichage
     void affichage(liste v,int n)
     {
       int i;
       for (i=0;i<n;i++) 
       {   
       printf("donner le nom:%s\n",v[i].nom);
       printf("prenom:%s\n",v[i].prenom);
       printf("la filiere:%filiere\n",v[i].fil);
       printf("le numero de la rue:%d\n",v[i].adr.num_rue);
       printf("le nom de la rue:%s\n",v[i].adr.nom_rue);
       printf("la ville:%s",v[i].adr.ville);
     }
    }
    //permuter deux etudiants
     void echange_etud(etudiant *e1,etudiant *e2)
     {
     etudiant temp;
     temp=*e1;
     *e1=*e2;
     *e2=temp;
     }
      //tri par nom  d'une liste d'etudiants 
     void tri_nom( liste v,int debut,int fin)
     {
     int i,j,ind_min;
      for (i=debut;i<fin-1;i++)
      {
         ind_min=i;
         for(j=i+1;j<fin;j++)
         {
           if (stricmp(v[j].nom,v[ind_min].nom)<0)
            {
              ind_min=j;
              echange_etud(&v[i],&v[ind_min]);
            }
         }   
      }      
     }
      //tri par nom  d'une liste d'etudiants 
     void tri_ville( liste v,int debut,int fin)
     {
     int i,j,ind_min;
      for (i=debut;i<fin-1;i++)
      {
         ind_min=i;
         for(j=i+1;j<fin;j++)
         {
           if (stricmp(v[j].adr.ville,v[ind_min].adr.ville)<0)
            {
              ind_min=j;
              echange_etud(&v[i],&v[ind_min]);
            }
         }   
      }      
     }
    int main(int argc, char *argv[])
    {
       //menu
        int n;
        char c;
        liste v[100];
        do{
                 printf("--------------------MENU------------------------");
                 printf ("\n1 lecture \n");  
                 printf ("2 affichage \n"); 
                 printf ("3 tri par nom \n");
                 printf ("4 tri par ville \n"); 
                 printf ("5 quitter \n") ;
                 printf("entrez votre choix:");
                 scanf("%c",&c);
                 switch(c)
                 {
                          case '1' : n=lecture(v);break;
                          case '2' :affichage(v,n);break;
                          case '3' :tri_nom(v,0,n);break;
                          case '4' :tri_ville(v,0,n);break;
                          case '5' :printf("merci \n");break;
                          default:printf("mauvaix choix");
                 }
        } while (c!='6');
      system("PAUSE");	
      return 0;
    }

  2. #2
    Membre habitué Avatar de Ksempac
    Inscrit en
    Février 2007
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 165
    Points : 185
    Points
    185
    Par défaut
    La reponse est 42.

    Plus serieusement : Ici on est pas des devins, ni des machines a tout faire :

    1- Utilises les balises code pour indenter et colorer ton code afin que ce soit plus lisible pour ceux qui te lisent

    2- Explique ce que ton programme est sensé faire et ou est ce que tu as un probleme.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Points : 675
    Points
    675
    Par défaut
    Et donne du code qui compile, stp

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Sanguko
    Et donne du code qui compile, stp
    J'arrive à le compiler... dans la douleur...
    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
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums2\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c: In function `affichage':
    main.c:71: warning: double format, different type arg (arg 2)
    main.c: In function `main':
    main.c:136: warning: passing arg 1 of `lecture' from incompatible pointer type
    main.c:137: warning: passing arg 1 of `affichage' from incompatible pointer type
    main.c:138: warning: passing arg 1 of `tri_nom' from incompatible pointer type
    main.c:139: warning: passing arg 1 of `tri_ville' from incompatible pointer type
    main.c: At top level:
    main.c:119: warning: unused parameter 'argc'
    main.c:119: warning: unused parameter 'argv'
    main.c: In function `main':
    main.c:122: warning: 'n' might be used uninitialized in this function
    Linking console executable: console.exe
    Process terminated with status 0 (0 minutes, 6 seconds)
    0 errors, 8 warnings

  5. #5
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Lorsque tu as ce code dans un autre discussion, on t'a dit d'utiliser la fonction fgets() en lieu et place de scanf("%s", tampon) qui ne correspond pas à une utilisation correcte de scanf().



    Pourquoi tu as mis des gets() partout. Il ne faut pas utiliser gets(), le remède n'est pas mieux que le mal, et gets() autant que scanf("%s", tampon) est un bug. Si on t'a conseiller d'utiliser fgets(), ce n'est pas un hasard. Une relecture de ce post s'impose: http://www.developpez.net/forums/sho...14&postcount=3

    Thierry

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    le probleme c ke ca s execute mais a l affichage il affiche le nom et prenom et la filiere du type enum l'affiche pas et il beug ensuite et pour les tris ca marche pas et j'utilise pas scanf j utilise sscanf apres gets ca ouvre le flux et merci pour la reponse

Discussions similaires

  1. problème simple d'affichage à l'écran, aidez moi svp
    Par Vincent23 dans le forum Débuter
    Réponses: 10
    Dernier message: 18/08/2008, 17h49
  2. Probleme avec DateDiff pour les années....
    Par angelevil dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 27/03/2006, 09h19
  3. probleme avec l'affichage d'une de mes variables
    Par somatino dans le forum Langage
    Réponses: 12
    Dernier message: 02/03/2006, 15h39
  4. Probleme avec mon algorithme de tri
    Par kaygee dans le forum Langage
    Réponses: 6
    Dernier message: 09/01/2006, 21h23
  5. [CSS] Probleme avec l'affichage de mon site :
    Par vampyrx dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 28/08/2005, 23h23

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