/**************************************************************************** File Name: 12.CmpFrac.c 分數fractions 分子numerator 分母denominator * Function : 1) * 2) * Author : Xubing * Created Time: 2016年09月29日 星期四 09時03分45秒***************************************************************************/#include <stdio.h>#define FRACSIZE 2#define NUME 0#define DENO 1int CmpFrac(int *frac1, int *frac2){ int temp_frac1[FRACSIZE]; int temp_frac2[FRACSIZE];/********************兩個分數進行通分*********************/ temp_frac1[NUME] = frac1[NUME] * frac2[DENO]; //第一個分數的分子 = 第一個分數的 //分子 * 第二個分數的分母 temp_frac2[NUME] = frac2[NUME] * frac1[DENO]; //第二個分數的分子 = 第二個分數的 //分子 * 第一個分數的分母 if(temp_frac1[NUME] > temp_frac2[NUME]) { return 1; } if(temp_frac1[NUME] == temp_frac2[NUME]) { return 0; } return -1;}int main(){ int frac_num1[FRACSIZE]; int frac_num2[FRACSIZE]; int flag; printf("Please input one fraction(format: n/m):\n"); scanf("%d/%d",&frac_num1[0],&frac_num1[1]); getchar(); printf("Please input another fraction(format: n/m):\n"); scanf("%d/%d",&frac_num2[0],&frac_num2[1]); getchar(); flag = CmpFrac(frac_num1, frac_num2); printf("The result is:\n"); switch(flag) { case 1: { printf("%d/%d > %d/%d\n",frac_num1[0],frac_num1[1],frac_num2[0],frac_num2[1]); break; } case 0: { printf("%d/%d = %d/%d\n",frac_num1[0],frac_num1[1],frac_num2[0],frac_num2[1]); break; } case -1: { printf("%d/%d < %d/%d\n",frac_num1[0],frac_num1[1],frac_num2[0],frac_num2[1]); break; } default: { printf("error\n"); break; } } return 0;}