如何用C语言编程输入两个分数求和并以最简分式的方式输出?

作者&投稿:熊致 (若有异议请与网页底部的电邮联系)
怎样学习编程,实战教学,0基础轻松学编程-毕业赢高薪~ #include "stdio.h"
int fun(int num1,int num2)/*求最大公约数函数*/
{
int a,b,temp;
if(num1<num2)
{
temp=num1;
num1=num2;
num2=temp;
}
a=num1;
b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
return a;
}
main()
{
int a1,a2,b1,b2,c=1,num1,num2;
printf("请输入第一个分数的分子:\n");
scanf("%d",&a1);
printf("请输入第一个分数的分母:\n");
scanf("%d",&a2);
printf("请输入第一个分数的分子:\n");
scanf("%d",&b1);
printf("请输入第一个分数的分母:\n");
scanf("%d",&b2);
num1=a1*b2+b1*a2;
num2=a2*b2;
c=fun(num1,num2);
num1=num1/c;
num2=num2/c;
if(num2==1)
printf("结果为:%d:",num1);
else
printf("结果为:%d/%d:",num1,num2);
}

#include
<stdio.h>
process(int
f1
,int
f2)/*求最大公约数,以便约分的函数*/
{
int
fx;
while(f2!=0)
{fx=f1%f2;
f1=f2;
f2=fx;}
return
f1;
}
void
main()
{
int
a,b,c,d,f1,f2,min;
printf("请按格式输入a/b\n");
scanf("%d/%d",&a,&b);
printf("请按格式输入c/d:\n");
scanf("%d/%d",&c,&d);
f1=a*d+b*c;
f2=b*d;
min=process(f1,f2);
printf("答案为:\n");
printf("%d/%d\n",f1/min,f2/min);
}

如何用C语言编程输入两个分数求和并以最简分式的方式输出?
答:输入可以用如下格式:unsigned int a,b,c,d;scanf("%d/%d",&a,&b);/*a/b*/ scanf("%d/%d",&c,&d);/*c/d*/ 求最大公因数,可以用辗转相除法;公分母=b、d的最小公倍数=b*d/b、d的最大公约数,通分后,分子相加,结果的分子、分母用辗转相除法求最大公约数,进行约分。约分后...

如何用C语言编程输入两个分数求和并以最简分式的方式输出?
答:printf("请输入第一个分数的分子:\n");scanf("%d",&b1);printf("请输入第一个分数的分母:\n");scanf("%d",&b2);num1=a1*b2+b1*a2;num2=a2*b2;c=fun(num1,num2);num1=num1/c;num2=num2/c;if(num2==1)printf("结果为:%d:",num1);else printf("结果为:%d/%d:",num1...

用c语言编程统计全班成绩。要求每次从键盘输入一个学生的2门分数
答:for(i=0;i<NUM;i++){ scanf("%s%d%d",&stu[i].name,&stu[i].score1,&stu[i].score2);stu[i].final=stu[i].score1+stu[i].score2;stu[i].ave=stu[i].final/2;if(stu[i].ave>=85) better ++;if(stu[i].ave>=60&&stu[i].ave<85) good++;} printf("the number...

C语言编程问题:分数计算器
答:struct { int z;//分子 int m;//分母};我没写过具体的可以计算分数的计算器,下面是加减乘除和括号的计算器源代码,你参考一下,如果看懂了应该不难改,应该是数据结构课程里堆栈这一块的内容。测试样例:输入:2*(3+6*(8/2+1))输出:66 include<stdio.h>#include<string.h>#include...

C语言编程(每次用键盘输入一个学生的2门分数,计算并输出每个学生的总分...
答:jg=0; float av; while(1) {scanf("%d%d",&a,&b); s=a+b; av=s/2.0; if(a<0||b<0)break; printf("总分:%d\t平均分:%.1f\n",s,av); if(av>=85)yx++; else if(av>=60)jg++; } printf("优秀人数:%d\t及格人数%d\n",yx,jg); return 0;} ...

c语言编程比较俩个分数怎么改
答:/*两数的小公倍数*/ int LCM(int m, int n){ return (m * n / GCD(m, n));} int main(){ int i,j,k,l,m,n;int lcm;printf("Input two FENSHU:\n");scanf("%d/%d,%d/%d",&i,&j,&k,&l); /*输入两个分数*/ lcm = LCM(j, l);/*求两个分母的最小公倍数*/...

C语言怎样编程用键盘输入学生的分数,并求平均分和不及格人数?
答:int main(int argc, char *argv[]){ //num代表总人数,score用于记录当前输入的分数,sum记录总分,//average记录平均分,failed记录不及格人数,所有分数都定为“整数”。int num=0, score=0,sum=0,average=0,failed=0;do{ scanf("%d",&score);if(score>=0){ sum+=score;//大于0的数,...

C语言编写程序,输入两个整数。
答:int main()printf("请输入两个整数:");scanf("%d %d",&a,&b);// sum=a+b;//三、数据处理,把a、b的和赋值给sum;printf("这两个数的和是:%d\n",sum);// return 0;//返回;C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力...

c语言编程,根据分数划分成绩
答:5. 具有清晰的程序流程图和数据结构的详细定义; 6. 熟练掌握C语言对文件的各种操作。 创新要求: 在基本要求达到后,可进行创新设计,如系统用户功能控制,对管理员级和一般级别的用户系统功能操作不同 三、信息描述 输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个...

用c语言编程实现从键盘输入本班33人的成绩分数,统计60分以上及格人数及...
答:int main(int argc,char *argv[]){ int grade[33];int count=0;int sum=0, i=0;printf("请输入33名学生的成绩:\n");for(;i<33;i++){ scanf("%d",&grade[i]);if(grade[i]>=60)count++;sum=sum+grade[i];} printf("及格人数:%d\n",count);printf("及格率:%d%% \n",...