oui
et pasCode:void GEOGRAPHIE (void)
Code:
1
2
3
4 void GEOGRAPHIE (void) { /* du code */ }
Version imprimable
j'arrive pas a saisir ta remarque
il y a la declaration de la fonction et son utilisation
Aller ... tte facon j'ai pas envie de bosser. J'ai rajouté quelques améliorations au code. Si tu es sous Unix ou Linux tu compile en utilisant -lm pour faire le lien avec la librairie math.
gcc -lm source.c -o exec
aide toi tout le monde t'aideraCode:
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 #include <stdio.h> #include <math.h> #define NBR_ELE 10 void Equation(void); void Geographie (void); void Affichage (void); void FACTURE (void); struct GEOGRAPHIE { int code ; char pays[15]; char capitale[20]; }; struct GEOGRAPHIE LISTE_GEO[NBR_ELE]; int main (void) { int choix; while(1) { puts ("****** MENU GENERAL ***** \n" "1-EQUATION\n" "2-GEOGRAPHIE\n" "3-FACTURE\n" "4-AFFICHAGE\n" "5-QUITTEZ"); scanf ("%d", &choix); switch (choix) { case 1 : Equation () ; break; case 2 : Geographie () ; break; case 3 : FACTURE () ; break; case 4: Affichage(); break; case 5 : puts ("sortie du programme"); break; default : puts ("choix non pris en compte"); } if(choix == 5) break; } return 0; } void Equation (void) { float x1, x2, delta, a, b, c; printf ("Donnez les nombres : "); scanf ("%f %f %f", &a, &b, &c) ; delta = b * b - 4 * a * c; if (delta > 0) { x1 = (-b + sqrt (delta)) / (2 * a); x2 = (b + sqrt (delta)) / (2 * a); printf ("deux solutions distinctes\n" "x1=%.2f\n et x2=%.2f\n",x1,x2); } else if (delta < 0) puts ("pas de solution dans R"); else { x1 = -b / (2 * a); printf ("une solution double\n" "x1=%.2f\n", x1); } } void Geographie (void) /* rien compris */ { int i; struct GEOGRAPHIE GEO; for(i=0;i<NBR_ELE;i++) { printf("Donnez le code");scanf("%d",&GEO.code) ; printf("Donnez le pays");scanf("%s",GEO.pays) ; printf("Donnez la capitale");scanf("%s",GEO.capitale) ; LISTE_GEO[i]=GEO; } } void Affichage (void) { printf("\nAffichage de la liste de pays\n"); int i; for ( i = 0; i < NBR_ELE; i++) { printf("code=%d , pays=%s , capitale = %s\n",LISTE_GEO[i].code,LISTE_GEO[i].pays,LISTE_GEO[i].capitale); } } void FACTURE (void) { int Na, Pu, Montant = 0, i = 0, n = 0;/* que vaut n? */ char article; for (i = 0; i < n; i++) { puts ("Donnez un article"); scanf ("%s", &article); puts ("Donnez le prix unitaire"); scanf ("%d", &Pu) ; puts ("Donnez la quantité"); scanf ("%d", &Na); Montant += Pu * Na; } /* if(command==Enter) d'ou sort command? break ; */ puts ("le Montant est :"); scanf ("%d", &Montant); }
comme suite:Code:PEUT ON MANIPULER "GEO" en lieu et place de l'enregistrement GEOGRAPHIE.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 void GEOGRAPHIE (void ) struct GEOGRAPHIE { int code,T[10],i ; char pays[15],capitale[20]; } GEO ; struct GEOGRAPHIE ; for(i=0;i<10;i++) { printf("Donnez le code");scanf("%d,&GEO.code") ; printf("Donnez le pays");scanf("%s,&GEO.pays") ; printf("Donnez la capitale");scanf("%s,&GEO.capitale") ; T[i]=GEO ; }
Tel que tu as fait, GEO est une variable Globale de type "struct GEOGRAPHIE".
Bon maintenant je ne comprends pas pourquoi tu veux appeler la structure GEOGRAPHIE et la fonction de saisie par le meme nom.
Je t'ai precedement corrigé les scanfs et j'ai remplacé le tableau T[] par LISTE_GEO[]
cela reprensente quoi dansvotre boucle sachantqu'il seulement 10 pays!Code:NBR_ELE
merci
hormis les "scanf " ce qui est ci-dessus peut être accepterCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void GEOGRAPHIE (void ) struct GEOGRAPHIE { int code,T[10],i ; char pays[15],capitale[20]; } GEO ; struct GEOGRAPHIE T[i]; for(i=0;i<10;i++) { printf("Donnez le code");scanf("%d,&GEO.code") ; printf("Donnez le pays");scanf("%s,&GEO.pays") ; printf("Donnez la capitale");scanf("%s,&GEO.capitale") ; T[i]=GEO;
ok!
je voudrais assembler tout ça et executer mon programme.je ne suis pas aux environnement linux où unix mais sous win.
Je te deconseille vivement de faire une structure et une fonction avec le meme nom.
Ta boucle for doit etre dans une fonction, et là je ne sais pas trop ce que tu veux dire par le void GEOGRAPHIE (void ) sans accolades.
Essaie ca :
et donc la je definis un entier i pour boucler avec.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 void GEOGRAPHIE (void ) { int i ; struct GEOGRAPHIE { int code; char pays[15],capitale[20]; } GEO ; struct GEOGRAPHIE T[NBR_ELE]; for(i=0;i<10;i++) { printf("Donnez le code");scanf("%d",&GEO.code) ; printf("Donnez le pays");scanf("%s",GEO.pays) ; printf("Donnez la capitale");scanf("%s",GEO.capitale) ; T[i]=GEO; } }
je definis la strucuture GEOGRAPHIE et une variable de type struct GEOGRAPHIE qui s'appelle GEO.
puis je definis le Tableau T[10] de type struct GEOGRAPHIE
et je boucle,je boucle,je boucle,je boucle,je boucle,je boucle,je boucle,je boucle,je boucle,je boucle
mais....................Code:
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 #include <stdio.h> #include <math.h> #define NBR_ELE 10 void Equation(void); void Geographie (void); void Affichage (void); void FACTURE (void); struct GEOGRAPHIE { int code ; char pays[15]; char capitale[20]; }; struct GEOGRAPHIE LISTE_GEO[NBR_ELE]; int main (void) { int choix; while(1) { puts ("****** MENU GENERAL ***** \n" "1-EQUATION\n" "2-GEOGRAPHIE\n" "3-FACTURE\n" "4-AFFICHAGE\n" "5-QUITTEZ"); scanf ("%d", &choix); switch (choix) { case 1 : Equation () ; break; case 2 : Geographie () ; break; case 3 : FACTURE () ; break; case 4: Affichage(); break; case 5 : puts ("sortie du programme"); break; default : puts ("choix non pris en compte"); } if(choix == 5) break; } return 0; } void Equation (void) { float x1, x2, delta, a, b, c; printf ("Donnez les nombres : "); scanf ("%f %f %f", &a, &b, &c) ; delta = b * b - 4 * a * c; if (delta > 0) { x1 = (-b + sqrt (delta)) / (2 * a); x2 = (b + sqrt (delta)) / (2 * a); printf ("deux solutions distinctes\n" "x1=%.2f\n et x2=%.2f\n",x1,x2); } else if (delta < 0) puts ("pas de solution dans R"); else { x1 = -b / (2 * a); printf ("une solution double\n" "x1=%.2f\n", x1); } } void Geographie (void) { int i; struct GEOGRAPHIE GEO; for(i=0;i<NBR_ELE;i++) { printf("Donnez le code");scanf("%d",&GEO.code) ; printf("Donnez le pays");scanf("%s",GEO.pays) ; printf("Donnez la capitale");scanf("%s",GEO.capitale) ; LISTE_GEO[i]=GEO; } } void Affichage (void) { int i; printf("\nAffichage de la liste de pays\n"); for ( i = 0; i < NBR_ELE; i++) { printf("code=%d , pays=%s , capitale = %s\n",LISTE_GEO[i].code,LISTE_GEO[i].pays,LISTE_GEO[i].capitale); } } void FACTURE (void) { int Na, Pu, Montant = 0, i = 0, n = 0; char article; for (i = 0; i <n; i++) { puts ("Donnez un article"); scanf ("%s", &article); puts ("Donnez le prix unitaire"); scanf ("%d", &Pu) ; puts ("Donnez la quantité"); scanf ("%d", &Na); Montant += Pu * Na; } puts ("le Montant est :"); scanf ("%d", &Montant); }
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Incohérence du programme : 1 - La FACTURE * Le programme ne calcul pas de facture (le montant) alors que ; moi jaimerais à partir dun achat effectuer avoir le montant ( de la facture ) . Aussi, jaimerais avoir ce « montant » en actionnant la touche « Entrer » de nimporte quel clavier. le « n » en temps normal cest le nombre max de produit acheter par un client ; je narrive à le spécifier aussi. 2- GEOGRAPHIE Je voudrais saisir et afficher un pays (code, nom pays, capitale) malgré que jen ai 10. Les 10 pays en même temps comme ici, en est une mauvaise interprétation. 3 présenter le menu général dans un tableau. Je compte sur votre indulgence pour maider. Bien à vous
je pense pour ma part que le calcul ne s'effectue pas pour 2 raisons la 1ère est que la boucle for (i = 0; i <n; i++) parce que le n qui devrait designer le nombre total de marchandises acheté est mal déclaré si pour la permiere exécution i=0 et i<0 est toujours vrai en math, à la 2e execution de la boucle vous aurez i=1 et i<0 ce qui na aucun sens. ceci est est un probleme.
Dans la pratique au super marché notre n s'obtient qu'apres que la caissière ait fait passer toutes les marchandises sur le lecteur de code barre.
Voila l'algorithme que je propose:
soit donner une grande valeur à n en supposant que le nombre d'articles acheté n'atteindrait jamais cette valeur de n. mais a ce niveau il faut trouver une astuce pour quitter cette boucle quand il n'ya plus de marchandise a enrgistrer. A ce niveau je suggère à chaque fin de cycle d'enregistrement d'un article d'interoger la caissièrre si c'est le dernier article sinon continuer avec l'article suivant si oui sortir de la boucle et calculer la facture.
Je ne maîtrise pas C mais avec cet algo vous devriez vous en sortir quelqun pourait mettre cela en lagage?
ah autant pour moi pasdeface.....
moi j'ai essayé de donner une valeur à n et jai decouvert encore 2 erreurs dans le program en fait les deux dernieres lignes.
je commence par le scanf("%d", &Montant); Montant nest pas une variable d'entrée mais plutôt une variable de sortie ainsi cette ligne n'a pas sa place dans le programme
la ligne précedente puts("le Montant est:") doit etre puts("le Montant est:%d",Montant);/*enfin cest ce que je crois.....*/ quant à la boucle de saisie des article je preconise une boucle while en lieu et place de for
Je vous remercie!
mon code marche; le voici :
BIEN à VOUS !Code:
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 #include <stdio.h> #include <math.h> #define NBR_ELE 10 void Equation(void); void Geographie (void); void Affichage (void); void FACTURE (void); struct GEOGRAPHIE { int code ; char pays[15]; char capitale[20]; }; struct GEOGRAPHIE LISTE_GEO[NBR_ELE]; int main (void) { int choix; while(1) { printf("***************************\n" "* MENU GENERAL *\n" "***************************\n" "* 1-EQUATION *\n" "* 2-GEOGRAPHIE *\n" "* 3-FACTURE *\n" "* 4-AFFICHAGE *\n" "* 5-QUITTEZ *\n" "***************************\n" " Votre Choix..."); scanf ("%d", &choix); switch (choix) { case 1 : Equation () ; break; case 2 : Geographie () ; break; case 3 : FACTURE () ; break; case 4: Affichage(); break; case 5 : puts ("Sortie du programme"); break; default : puts ("Choix non pris en compte, Reessayez\n\n"); } if(choix == 5) break; } return 0; } void Equation (void) { double x1, x2; float delta, a, b, c; printf ("Donnez les parametres de l'equation: "); scanf ("%f %f %f", &a, &b, &c) ; delta = b * b - 4 * a * c; if (delta > 0) { x1 = (-b - sqrt (delta)) / (2 * a); x2 = (-b + sqrt (delta)) / (2 * a); printf ("Il existe deux solutions distinctes\n" "x1=%.2f\n et x2=%.2f\n",x1,x2); } else if (delta < 0) puts ("Pas de solution dans R"); else { x1 = -b / (2 * a); printf ("Il existe une solution double\n" "x1=x2=%.2f\n", x1); } } void Geographie (void) { int i; struct GEOGRAPHIE GEO; for(i=0;i<NBR_ELE;i++) { printf("Traitement du Pays%d\n\n", i+1); printf("Donnez le code ");scanf("%d",&GEO.code) ;printf("\n"); printf("Donnez le pays ");scanf("%s",GEO.pays) ;printf("\n"); printf("Donnez la capitale ");scanf("%s",GEO.capitale) ; printf("\n"); LISTE_GEO[i]=GEO; } } void Affichage (void) { int i; printf("\n\nAffichage de la liste de pays\n\n"); for ( i = 0; i < NBR_ELE; i++) { printf("code=%d , pays=%s , capitale = %s\n",LISTE_GEO[i].code,LISTE_GEO[i].pays,LISTE_GEO[i].capitale); } } void FACTURE (void) { int Na, Pu, Montant = 0, i =1, n=0,choix; char article; for(i=1;i>n;i++) { puts ("Donnez un article"); scanf ("%s", &article); puts ("Donnez le prix unitaire"); scanf ("%d", &Pu) ; puts ("Donnez la quantité"); scanf ("%d", &Na); n++; Montant += Pu * Na; printf("Dernier article? 1=OUI 2=NON "); scanf("%d",&choix); if (choix==1) { printf ("le Montant est :%d FCFA\n\n\n",Montant); break; } } ; }