-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathex4.c
executable file
·92 lines (78 loc) · 1.67 KB
/
ex4.c
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
#include <stdio.h>
#include <stdlib.h>
typedef struct complexe{
float x;
float y;
} Complexe;
union valeur{
int entier;
float reel;
struct complexe complexe;
};
enum genre {entier, reel, complexe};
typedef struct nombre{
enum genre type;
union valeur valeur;
}nombre ;
nombre saisir_nombre();
void afficher_nombre(nombre);
void afficher(Complexe);
void afficher(Complexe z)
{
if (z.y < 0)
printf("%.2f - %.2fi\n", z.x, -z.y);
else if (z.y > 0)
printf("%.2f + %.2fi\n", z.x, z.y);
else
printf("%.2f\n", z.x);
}
nombre saisir_nombre(){
nombre n;
int choix;
printf("1-entier\n2-reel\n3-complexe\n");
scanf("%d",&choix);
switch (choix){
case 1:
n.type=entier;
printf("entier:");
scanf("%d",&n.valeur.entier);
break;
case 2:
n.type=reel;
printf("reel:");
scanf("%f",&n.valeur.reel);
break;
case 3:
n.type=complexe;
printf("complexe:");
scanf("%f %f",&n.valeur.complexe.x,&n.valeur.complexe.y);
break;
default:
printf("erreur");
break;
}
return n;
}
void afficher_nombre(nombre n){
switch (n.type){
case entier:
printf("%d",n.valeur.entier);
break;
case reel:
printf("%f",n.valeur.reel);
break;
case complexe:
afficher(n.valeur.complexe);
break;
default:
printf("erreur");
break;
}
}
int main()
{
nombre n;
n=saisir_nombre();
afficher_nombre(n);
return 0;
}