用c语言实现比较两个分数的大小

来源:互联网 发布:淘宝网手工布鞋 编辑:程序博客网 时间:2024/06/06 15:51
/**************************************************************************** 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;}

0 0
原创粉丝点击