对输入的两个分数选择‘+’、‘-’、‘*’、‘/’四则运算,并以分数形式输出结果。输入:第一行先输入整数T,表示总共有T组数据。接下来共T行,每行输入分数形式的算术表达式。输出:最简分数形
生活随笔
收集整理的這篇文章主要介紹了
对输入的两个分数选择‘+’、‘-’、‘*’、‘/’四则运算,并以分数形式输出结果。输入:第一行先输入整数T,表示总共有T组数据。接下来共T行,每行输入分数形式的算术表达式。输出:最简分数形
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include<math.h>
#include<stdio.h>
int main()
{int T;int num1,num2,num3,num4,i,c,a1,a2;char k;int fun(int a1,int a2);//函數調用scanf("%d\n",&T);for(i=1;i<=T;i++){scanf("%d/%d",&num1,&num2);scanf("%c",&k);scanf("%d/%d",&num3,&num4);switch(k){case '+':a1=num1*num4+num2*num3;//分數分子加法運算a2=num2*num4;//分母加法運算c=fun(abs(a1),abs(a2));//求出最大公約數a1=a1/c;//約分a2=a2/c;//約分if(a1/a2==-1)printf("-1");else{if(a2==1)//判斷分母是否為一printf("%d\n",a1);elseprintf("%d/%d\n",a1,a2);}break;case '-':a1=num1*num4-num2*num3;//分數分子減法運算a2=num2*num4;//分母減法運算c=fun(abs(a1),abs(a2));//求出最大公約數a1=a1/c;//約分a2=a2/c;//約分if(a1/a2==-1)printf("-1");else{if(a2==1)//判斷分母是否為一printf("%d\n",a1);elseprintf("%d/%d\n",a1,a2);}break;case '*':a1=num1*num3;//分數分子乘法運算a2=num2*num4;//分母乘法運算c=fun(abs(a1),abs(a2));a1=a1/c;//約分a2=a2/c;//約分if(a1/a2==-1)printf("-1");else{if(a2==1)//判斷分母是否為一printf("%d\n",a1);elseprintf("%d/%d\n",a1,a2);}break;case '/':a1=num1*num4;//分數分子除法運算a2=num2*num3;//分母除法運算c=fun(abs(a1),abs(a2));a1=a1/c;//約分a2=a2/c;//約分if(a1/a2==-1)printf("-1");else{if(a2==1)//判斷分母是否為一printf("%d\n",a1);elseprintf("%d/%d\n",a1,a2);}break;default:printf("無此運算!");}}return 0;
}```c
/*
函數功能:求最大公約數
函數入口參數:兩個非負整數
函數出口參數:最大公約數
*/
int fun(int a1,int a2)
{int b1,b2,temp;if(a1<a2){temp=a1;a1=a2;a2=temp;}b1=a1;b2=a2;while(b2!=0)//利用輾轉相除法,直到b2為0為止{temp=b1%b2;b1=b2;b2=temp;}//當其中一個數為0,另一個數就是兩數的最大公約數return b1;
}
總結
以上是生活随笔為你收集整理的对输入的两个分数选择‘+’、‘-’、‘*’、‘/’四则运算,并以分数形式输出结果。输入:第一行先输入整数T,表示总共有T组数据。接下来共T行,每行输入分数形式的算术表达式。输出:最简分数形的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 毕业设计-基于微信小程序的校园跑腿互助系
- 下一篇: 小程序转uni-app——onLoad语