A voir également:
- [c]mettre des structure ds un tableau
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Trier un tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
11 réponses
sadektlili
Messages postés
139
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
3 avril 2010
4
30 déc. 2008 à 23:38
30 déc. 2008 à 23:38
tout les structur qui tu a fais ne change pas mais tu ajoute une autre structure de pointeur comme ca :
struct point
{
adresse ad;
employe eml;
complement comp;
};
typedef struct point pointeur;
//pour declare le tableau
pointeur tab[30];
//pour aller a la nom de emplayer par exemple
tab[i].eml.nom
struct point
{
adresse ad;
employe eml;
complement comp;
};
typedef struct point pointeur;
//pour declare le tableau
pointeur tab[30];
//pour aller a la nom de emplayer par exemple
tab[i].eml.nom
et comme ca c'est juste?
#include <iostream>
#define nmax 30
typedef char chaine[nmax];
typedef enum{homme,femme}sexe;
typedef enum{libere,exempte,reforme,incorporable}sit_mit;
typedef union{sit_mit sitmit;
chaine nomjf;}complement;
typedef struct adresse{
unsigned int num;
chaine rue;
unsigned int code;
chaine localite;
}adresse;
typedef struct employe{
chaine nom;
chaine prenom;
sexe sex;
complement comp;
adresse ad;
}employe;
void saisie_structure( employe emp[]){
int s,m;
printf("taper le nom\n");
gets(emp->nom);
printf("taper le prenom\n");
gets(emp->prenom);
printf("taper %d pour homme et %d pour femme\n",0,1);
scanf("%d",&s);
while ((s!=0)&&(s!=1)){
printf("taper %d pour homme et %d pour femme\n",0,1);
scanf("%d",&s);
}
switch(s){
case 0:emp->sex=homme;
break;
case 1:emp->sex=femme;
}
if (emp->sex==femme){
printf("taper le nom de jeune fille\n");
gets(emp->comp.nomjf);
}
else
printf("taper la situation militaire:taper un pour libere,deux pour exempte,trois pour reforme et quatre pour incorporable\n");
scanf("%d",&m);
fflush(stdin);
switch(m){
case 0:emp->comp.sitmit=libere;
break;
case 1:emp->comp.sitmit=exempte;
break;
case 3:emp->comp.sitmit=reforme;
break;
case 4:emp->comp.sitmit=incorporable;
break;
}
printf("taper votre adresse\n");
printf("taper le numero de la rue\n");
scanf("%ud",&emp->ad.num);
fflush(stdin);
printf("taper le nom de la rue\n");
gets(emp->ad.rue);
printf("taper le code postale");
scanf("%ud",&emp->ad.code);
fflush(stdin);
printf("taper la localite\n");
gets(emp->ad.localite);
}
int main(){
int n,i;
employe emp[30];
printf("taper le nombre de personnes\n");
scanf("%d",&n);
fflush (stdin);
for(i=0;i<n;i++){
saisie_structure(emp);
}
}
#include <iostream>
#define nmax 30
typedef char chaine[nmax];
typedef enum{homme,femme}sexe;
typedef enum{libere,exempte,reforme,incorporable}sit_mit;
typedef union{sit_mit sitmit;
chaine nomjf;}complement;
typedef struct adresse{
unsigned int num;
chaine rue;
unsigned int code;
chaine localite;
}adresse;
typedef struct employe{
chaine nom;
chaine prenom;
sexe sex;
complement comp;
adresse ad;
}employe;
void saisie_structure( employe emp[]){
int s,m;
printf("taper le nom\n");
gets(emp->nom);
printf("taper le prenom\n");
gets(emp->prenom);
printf("taper %d pour homme et %d pour femme\n",0,1);
scanf("%d",&s);
while ((s!=0)&&(s!=1)){
printf("taper %d pour homme et %d pour femme\n",0,1);
scanf("%d",&s);
}
switch(s){
case 0:emp->sex=homme;
break;
case 1:emp->sex=femme;
}
if (emp->sex==femme){
printf("taper le nom de jeune fille\n");
gets(emp->comp.nomjf);
}
else
printf("taper la situation militaire:taper un pour libere,deux pour exempte,trois pour reforme et quatre pour incorporable\n");
scanf("%d",&m);
fflush(stdin);
switch(m){
case 0:emp->comp.sitmit=libere;
break;
case 1:emp->comp.sitmit=exempte;
break;
case 3:emp->comp.sitmit=reforme;
break;
case 4:emp->comp.sitmit=incorporable;
break;
}
printf("taper votre adresse\n");
printf("taper le numero de la rue\n");
scanf("%ud",&emp->ad.num);
fflush(stdin);
printf("taper le nom de la rue\n");
gets(emp->ad.rue);
printf("taper le code postale");
scanf("%ud",&emp->ad.code);
fflush(stdin);
printf("taper la localite\n");
gets(emp->ad.localite);
}
int main(){
int n,i;
employe emp[30];
printf("taper le nombre de personnes\n");
scanf("%d",&n);
fflush (stdin);
for(i=0;i<n;i++){
saisie_structure(emp);
}
}
sadektlili
Messages postés
139
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
3 avril 2010
4
30 déc. 2008 à 23:06
30 déc. 2008 à 23:06
tu ve unt tableau qui contien dans chaque case deux structure : adrese,nom ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sadektlili
Messages postés
139
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
3 avril 2010
4
30 déc. 2008 à 23:14
30 déc. 2008 à 23:14
dans chaque case plus qu'une stricture ?
sadektlili
Messages postés
139
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
3 avril 2010
4
30 déc. 2008 à 23:21
30 déc. 2008 à 23:21
tu ne peut pas cas si tu declare une tableau tout les cas de ce tableau est de meme type.
mais tu peut faire une tableau de stucture dans tuot les case 3 strecture.......
mais tu peut faire une tableau de stucture dans tuot les case 3 strecture.......
L'indentation n'existant pas, je n'ai pas pris la peine de tout détailler.
L'art de la programmation est de faire quelque chose qui marche, mais il est inutile d'en rajouter des km car ensuite il est plus difficile de trouver les erreurs.
Exemple
devient
Ne pas oublier de traiter les erreurs de saisie, c'est très très important.
L'art de la programmation est de faire quelque chose qui marche, mais il est inutile d'en rajouter des km car ensuite il est plus difficile de trouver les erreurs.
Exemple
printf ("taper %d pour homme et %d pour femme\n",0,1); scanf ("%d",&s); switch(s) { case 0: emp->sex=homme; break; case 1: emp->sex=femme; } if (emp->sex==femme) { printf ("taper le nom de jeune fille\n"); gets (emp->comp.nomjf); } else { printf("taper la situation militaire:taper un pour libere,deux pour exempte,trois pour reforme et quatre pour incorporable\n"); scanf("%d",&m); fflush(stdin); switch(m) { case 0: emp->comp.sitmit=libere; break; case 1: emp->comp.sitmit=exempte; break; case 3: emp->comp.sitmit=reforme; break; case 4: emp->comp.sitmit=incorporable; break; } }
devient
printf ("Taper %d pour homme et %d pour femme\n", 0, 1); scanf ("%d", &s); emp->sex = s; // Il serait bon de traiter l'erreur de saisie si != 0 et != 1 if (emp->sex==femme) { printf (Taper le nom de jeune fille\n"); gets (emp->comp.nomjf); } else { printf ("Taper la situation militaire:taper un pour libere,deux pour exempte,trois pour reforme et quatre pour incorporable\n"); scanf ("%d", &m); fflush (stdin); emp->comp.sitmit = m-1; // Il serait bon de traiter l'erreur de saisie si != 1 et != 2 et != 3 et != 4 }
Ne pas oublier de traiter les erreurs de saisie, c'est très très important.
A la place de "emp->sex = s;" mettre "emp->sex = s - '0';"
A la place de "emp->comp.sitmit = m-1;" mettre "emp->comp.sitmit = m - '1';"
Mille excuses.
Et puis:
printf ("Taper %d pour homme et %d pour femme\n", 0, 1);
peut avantageusement se remplacer par:
printf ("Taper'0' pour homme et '1' pour femme\n");
A la place de "emp->comp.sitmit = m-1;" mettre "emp->comp.sitmit = m - '1';"
Mille excuses.
Et puis:
printf ("Taper %d pour homme et %d pour femme\n", 0, 1);
peut avantageusement se remplacer par:
printf ("Taper'0' pour homme et '1' pour femme\n");
sadektlili
Messages postés
139
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
3 avril 2010
4
30 déc. 2008 à 23:24
30 déc. 2008 à 23:24
ok;
je te donne une exp ..................
laisse moi du temp......
je te donne une exp ..................
laisse moi du temp......