Cách sử dụng Kiểu dữ liệu cấu trúc: Struct phân số

toi1em

Member
Feb 20, 2012
949
0
16
40
320x50.jpg


Bài toán:

Khai báo cấu trúc PhanSo cần thiết lưu trữ thông tin phân số, sau đó thực hiện các chức năng:

  • Viết hàm nhập vào phân số.
  • Viết hàm xuất phân số.
  • Kiểm tra phân số mẫu phải khác 0.
  • Viết hàm tối giản phân số.
  • Nhập vào 2 phân số. Tính tổng, hiệu, tích và thương của hai phân số.

Xử lý bài toán:

Khai báo thư viện



#include<stdio.h> #include<conio.h> #include<math.h>



#include<stdio.h>

#include<conio.h>

#include<math.h>

Khai báo struct phân số


struct phanso { int tu; int mau; };



struct phanso

{

int tu;

int mau;

};

Khai báo các hàm cần sử dụng


void nhapphanso(phanso &ps); void xuatphanso(phanso ps); int ULCN(int a, int b); void rutgon(phanso &ps); phanso tongps(phanso x,phanso y); phanso hieups(phanso a,phanso b); phanso tichps(phanso a,phanso b); phanso thuongps(phanso a,phanso b);



1

2

3

4

5

6

7

8


void nhapphanso(phanso &ps);

void xuatphanso(phanso ps);

int ULCN(int a, int b);

void rutgon(phanso &ps);

phanso tongps(phanso x,phanso y);

phanso hieups(phanso a,phanso b);

phanso tichps(phanso a,phanso b);

phanso thuongps(phanso a,phanso b);

Viết hàm nhập


void nhapphanso(phanso &ps) { printf("\nNhap vao tu so "); scanf("%d",&ps.tu); do { printf("\nNhap vao mau so "); scanf("%d",&ps.mau); if(ps.mau==0) printf("\nMau phai khac khong\nVui long kiem tra lai"); }while(ps.mau==0); }



1

2

3

4

5

6

7

8

9

10

11

12


void nhapphanso(phanso &ps)

{

printf("\nNhap vao tu so ");

scanf("%d",&ps.tu);

do

{

printf("\nNhap vao mau so ");

scanf("%d",&ps.mau);

if(ps.mau==0)

printf("\nMau phai khac khong\nVui long kiem tra lai");

}while(ps.mau==0);

}

Viết hàm xuất


void xuatphanso(phanso ps) { printf("Phan so: %d / %d",ps.tu,ps.mau); }



void xuatphanso(phanso ps)

{

printf("Phan so: %d / %d",ps.tu,ps.mau);

}

Viết hàm tìm ước chung lớn nhất


int UCLN(int a, int b) { a=abs(a); b=abs(b); while(a!=b) { if(a>b) a=a-b; else b=b-a; } return a; }



1

2

3

4

5

6

7

8

9

10

11

12

13


int UCLN(int a, int b)

{

a=abs(a);

b=abs(b);

while(a!=b)

{

if(a>b)

a=a-b;

else

b=b-a;

}

return a;

}

Viết hàm tối giản phân số


void rutgon(phanso &ps) { int c=UCLN(ps.tu,ps.mau); ps.tu=ps.tu/c; ps.mau=ps.mau/c; }



1

2

3

4

5

6


void rutgon(phanso &ps)

{

int c=UCLN(ps.tu,ps.mau);

ps.tu=ps.tu/c;

ps.mau=ps.mau/c;

}

Viết hàm tính tổng


phanso tongps(phanso a,phanso b) { phanso tong; tong.tu=a.tu*b.mau+b.tu*a.mau; tong.mau=a.mau*b.mau; rutgon(tong); return tong; }



1

2

3

4

5

6

7

8


phanso tongps(phanso a,phanso b)

{

phanso tong;

tong.tu=a.tu*b.mau+b.tu*a.mau;

tong.mau=a.mau*b.mau;

rutgon(tong);

return tong;

}

Viết hàm tính hiệu


phanso hieups(phanso a,phanso b) { phanso h; h.tu=a.tu*b.mau-b.tu*a.mau; h.mau=a.mau*b.mau; rutgon(h); return h; }



1

2

3

4

5

6

7

8


phanso hieups(phanso a,phanso b)

{

phanso h;

h.tu=a.tu*b.mau-b.tu*a.mau;

h.mau=a.mau*b.mau;

rutgon(h);

return h;

}

Viết hàm tính tích


phanso tichps(phanso a,phanso b) { phanso tich; tich.tu=a.tu*b.tu; tich.mau=a.mau*b.mau; rutgon(tich); return tich; }



1

2

3

4

5

6

7

8


phanso tichps(phanso a,phanso b)

{

phanso tich;

tich.tu=a.tu*b.tu;

tich.mau=a.mau*b.mau;

rutgon(tich);

return tich;

}

Viết hàm tính thương


phanso thuongps(phanso a,phanso b) { phanso thuong; thuong.tu=a.tu*b.mau; thuong.mau=a.mau*b.tu; rutgon(thuong); return thuong; }



1

2

3

4

5

6

7

8


phanso thuongps(phanso a,phanso b)

{

phanso thuong;

thuong.tu=a.tu*b.mau;

thuong.mau=a.mau*b.tu;

rutgon(thuong);

return thuong;

}

Hàm main


void main() { phanso x,y; printf("\nNhap phan so thu nhat "); nhapphanso(x); xuatphanso(x); printf("\nNhap phan so thu 2"); nhapphanso(y); xuatphanso(y); phanso tong= tongps(x,y); printf("\n tong "); xuatphanso(tong); phanso hieu=hieups(x,y); printf("\nHieu "); xuatphanso(hieu); phanso tich=tichps(x,y); printf("\nTich "); xuatphanso(tich); phanso thuong=thuongps(x,y); printf("\nThuong "); xuatphanso(thuong); getch(); }



1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24


void main()

{

phanso x,y;

printf("\nNhap phan so thu nhat ");

nhapphanso(x);

xuatphanso(x);

printf("\nNhap phan so thu 2");

nhapphanso(y);

xuatphanso(y);

phanso tong= tongps(x,y);

printf("\n tong ");

xuatphanso(tong);

phanso hieu=hieups(x,y);

printf("\nHieu ");

xuatphanso(hieu);

phanso tich=tichps(x,y);

printf("\nTich ");

xuatphanso(tich);

phanso thuong=thuongps(x,y);

printf("\nThuong ");

xuatphanso(thuong);

getch();

}

Xem thêm: Mảng Struct và ví dụ ứng dụng

Chúc các bạn thành công!

Sưu tầm & Tổng hợp
w: www.hanoiyeu.com
e: [email protected]