#include
typedef struct
{
int x;
int y;
}Point;
Point KPoint(int x1, int y1)
{
Point p;
p.x = x1; p.y = y1;
return p;
}
typedef struct
{
Point p1, p2;
int a, b;
}Rectangle;
35
Rectangle KRectangle(int x1, int y1, int x2, int y2)
Rectangle r;
r.p1 = KPoint(x1, y1);
r.p2 = KPoint(x2, y2);
r.a = x2 - x1;
r.b = y2 - y1;
return r;
88
};
int Per(Rectangle p) { return 2 * (p.a + p.b); }
int Sq(Rectangle p) {return p.a * p.b; }
int main()
{
Rectangle X;
X = KRectangle(10, 20, 50, 80);
printf("Perimetr = %d\n", Per(X));
printf("Yuza = %d", Sq(X));
return 0;
}
Natija:
Perimetr = 200
Yuza = 2400
Perimetr = 10
Yuza = 6
35
STRUKTURALAR VA KO’RSATKICHLAR
Strukturaga ko’rsatkichlar oddiy ko’rsatkichlar kabi tasvirlanadi:
Complex *cc,*ss; struct goods *p_goods;
Strukturaga ko’rsatkich ta'riflanganda initsializatsiya qilinishi mumkin. Misol uchun ekrandagi rangli nuktani tasvirlovchi qo’yidagi strukturali tip va strukturalar massivi kiritiladi. Strukturaga ko’rsatkich qiymatlari initsializatsiya va qiymat berish orqali aniqlanadi:
Struct point
{int color;
int x,y;
} a,b;
struct point *pa=&a,pb; pb=&b;
Ko’rsatkich orqali struktura elementlariga ikki usulda murojaat qilish mumkin. Birinchi usul adres bo’yicha qiymat olish amaliga asoslangan bo’lib qo’yidagi shaklda qo’llaniladi:
(* strukturaga ko’rsatkich).element nomi;
Ikkinchi usul mahsus strelka (->) amaliga asoslangan bo’lib qo’yidagi ko’rinishga ega:
strukturaga ko’rsatkich->element nomi
36
Struktura elementlariga qo’yidagi murojaatlar o’zaro tengdir:
(*pa).color==a.color==pa->color
Struktura elementlari qiymatlarini ko’rsatkichlar yordamida qo’yidagicha o’zgartirish mumkin:
Do'stlaringiz bilan baham: |