-
Notifications
You must be signed in to change notification settings - Fork 0
/
ailedeki_cocuklarin_yas_ort_struct.c
128 lines (87 loc) · 2.63 KB
/
ailedeki_cocuklarin_yas_ort_struct.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
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
#include <stdio.h>
#include <stdlib.h>
/*
ailelerin soyadları ve her ailede kac cocuk oldugu cocuklarin adi ve yasi..
*/
typedef struct cocuklar
{
char ad[30];
int yas;
} cocuk;
typedef struct aile
{
char aile_soyad[30];
int csayi;
cocuk *cocuklar;
} A;
A *bilgi_ekle(int aile_sayi)
{
int i,j;
A *b = (A*)malloc(aile_sayi*sizeof(A));
for(i=0; i<aile_sayi; i++)
{
printf("%d.Aile'nin soyadi :",i+1);
fflush(stdin);
gets((b+i)->aile_soyad);
printf("%d.Aile'nin cocuk sayisi :",i+1);
scanf("%d",&(b+i)->csayi);
(b+i)->cocuklar = (cocuk*)malloc((b+i)->csayi * sizeof(cocuk));
for(j=0; j<(b+i)->csayi; j++)
{
printf("%d.Aile'nin %d.Cocugu'nun adi :",i+1,j+1);
fflush(stdin);
gets(((b+i)->cocuklar+j)->ad);
printf("%d.Aile'nin %d.Cocugu'nun yasi :",i+1,j+1);
scanf("%d",&((b+i)->cocuklar+j)->yas);
}
printf("\n\n---------------------------------\n\n");
}
return b;
}
void yazdir(A *b, int aile_sayi)
{
int i,j;
for(i=0; i<aile_sayi; i++)
{
printf("%d.Aile'nin soyadi : %s\n",i+1,(b+i)->aile_soyad);
printf("%d.Aile'nin cocuk sayisi : %d\n",i+1,(b+i)->csayi);
for(j=0; j<(b+i)->csayi; j++)
{
printf("%d.Aile'nin %d.Cocugu'nun adi : %s\n",i+1,j+1,((b+i)->cocuklar+j)->ad);
printf("%d.Aile'nin %d.Cocugu'nun yasi : %d\n",i+1,j+1,((b+i)->cocuklar+j)->yas);
}
printf("\n\n---------------------------------\n\n");
}
}
void yas_hesapla(A *b, int aile_sayi)
{
int i, j, tcocuk = 0;
double aile_yas_ort = 0, genel_ort = 0;
for(i=0; i<aile_sayi; i++)
{
aile_yas_ort = 0;
for(j=0; j<(b+i)->csayi; j++)
{
aile_yas_ort +=((b+i)->cocuklar+j)->yas;
}
aile_yas_ort = (double)aile_yas_ort/(b+i)->csayi;
printf("%d.Ailedeki cocuklarin yas ortalamasi : %.2lf\n\n",i+1,aile_yas_ort);
tcocuk +=(b+i)->csayi;
genel_ort +=aile_yas_ort;
}
printf("Bu yapidaki toplam cocuk sayisi : %d\n\n",tcocuk);
genel_ort = (double)genel_ort/aile_sayi;
printf("Tum cocuklarin genel yas ortalamasi : %.2lf\n\n",genel_ort);
}
int main()
{
int aile;
A *bilgi;
printf("Kac aile bilgisi girilecek :");
scanf("%d",&aile);
printf("\n\n---------------------------------\n\n");
bilgi = bilgi_ekle(aile);
yazdir(bilgi,aile);
yas_hesapla(bilgi,aile);
return 0;
}