“啰嗦”的四则运算
分数的四则运算之法
我上周的作业是随机整数的加减法,这个程序其实挺简单的,只要利用一个随机函数生成随机的整数,再进行加减就可以了,这周老师要求我们四则运算和分数的四则运算,在整数中,只有除有一点小麻烦,但是在分数中,却遇到以下几种问题。
1,变量类型问题。
定义变量时,会纠结于是整形还是浮点型。
2,结果比较问题。
输入结果后,需要同正确结果进行比较,但这个结果总是会出现问题,因为结果和变量定义的都是整型,结果会有偏差。
我的解决办法:几次调试运行,我发现是我太过拘泥于形式,觉得分数是一种表达方式,而在程序运行时,输出结果是不会直接是分数的,定义整型变量是没有问题的,只需要将约分好的分子同输入的分子比较,约分好的分母同输入的分母比较,这样就可以得到一个正确的结果。
我上周的作业是随机整数的加减法,这个程序其实挺简单的,只要利用一个随机函数生成随机的整数,再进行加减就可以了,这周老师要求我们四则运算和分数的四则运算,在整数中,只有除有一点小麻烦,但是在分数中,却遇到以下几种问题。
1,变量类型问题。
定义变量时,会纠结于是整形还是浮点型。
2,结果比较问题。
输入结果后,需要同正确结果进行比较,但这个结果总是会出现问题,因为结果和变量定义的都是整型,结果会有偏差。
我的解决办法:几次调试运行,我发现是我太过拘泥于形式,觉得分数是一种表达方式,而在程序运行时,输出结果是不会直接是分数的,定义整型变量是没有问题的,只需要将约分好的分子同输入的分子比较,约分好的分母同输入的分母比较,这样就可以得到一个正确的结果。
case 0:
printf("%d/%d+%d/%d=",x,y,z,w);
y1=y*w;
x1=x*w+y*z;
x1=x1/gcd(y1,x1);
y1=y1/gcd(y1,x1);
scanf ("%d/%d",&m,&n);
if(m==x1||n==y1)
printf("结果正确\n");
else
printf("结果错误,正确结果是%d/%d\n",x1,y1);
break;
case 1:
printf("%d/%d*%d/%d=",x,y,z,w);
x1=x*z;
y1=y*w;
x2=fenzi(x1,y1);
y2=fenmu(x1,y1);
scanf ("%d/%d",&m,&n);
if(m==x1||n==y1)
printf("结果正确\n");
else
printf("结果错误,正确结果是%d/%d\n",fenzi(x1,y1),fenmu(x1,y1));
break;
四则运算,对于大神级的人来说,可能是一个特别简单的小程序,其实我是一个编程能力偏差的人,一步一步调试运行增加功能,这个程序可能是很啰嗦的,但我在努力去尽善尽美!