Bài 81. Kiểu dữ liệu struct và con trỏ, Bài tập về rút gọn phân số


Video giải thích chi tiết về Kiểu dữ liệu struct và con trỏ, Bài tập về rút gọn phân số trong lập trình C | Tự học lập trình C



Code ví dụ


#include "stdio.h"
#include "math.h"
struct PhanSo{
	int tuSo;
	int mauSo;
};


void rutGon(PhanSo *ps){
	// Tim USCLN
	int a = ps->tuSo;
	int b = ps->mauSo;

	a = abs(a);
	b = abs(b);
	
	int USCLN =1;
	// TH1
	if(a==0 || b==0){
		USCLN = (a+b);
	}else{
	//TH2
		while(a!=b){
			if(a>b){
				a = a-b;
			}else{
				b = b-a;
			}
		}
		USCLN = a;	
	}
	ps->tuSo/=USCLN;
	ps->mauSo/=USCLN;
}

void nhapPhanSo(PhanSo *ps){
	printf("\nNhap vao tu so: ");
	scanf("%d", &ps->tuSo);
	do{
		printf("\nNhap vao mau so: ");
		scanf("%d", &ps->mauSo);
	}while(ps->mauSo==0);
}

void inPhanSo(PhanSo ps){
	if(ps.mauSo<0){
		ps.tuSo*=-1;
		ps.mauSo*=-1;
	}
	rutGon(&ps);
	printf("%d/%d", ps.tuSo, ps.mauSo);
}

int main(){
	PhanSo ps1, ps2;
	printf("\nPhan so thu nhat: ");
	nhapPhanSo(&ps1);
	printf("\nPhan so thu hai: ");
	nhapPhanSo(&ps2);
	printf("\nPhan so vua nhap la: ");
	inPhanSo(ps1);
	printf("\t");
	inPhanSo(ps2);
}



    

Bạn có thể thích những bài đăng này:

Không có nhận xét nào:

Đăng nhận xét