分数的四则运算(c)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分数的四则运算(c)
#include<stdio.h>
void addint(int a, int b)//整数加法运算
{
printf("相加之后的结果为%d", a + b);
}
void subint(int a, int b)//整数减法运算
{
printf("相减之后的结果为%d", a - b);
}
void mulint(int a, int b)//整数乘法运算
{
printf("相乘之后的结果为%d", a * b);
}
void divint(float a, float b)//整数除法运算
{
//float c;
//c = a / b;
printf("相除之后的结果为%f", a/b);
}
void addf(int a, int b,int c,int d)//a为第⼀个分数的分⼦,b为第⼀个分数的分母,c为第⼀个分数的分⼦,d为第⼆个分数的分母{
int e, f, i;//e为运算后的分⼦,f为运算后的分母
f = b * d;
e = a * d + b * c;
for (i = 2; i < f; i++)
{
if ((e % i == 0) && (f % i == 0))
{
e = e/i;
f = f/i;
}
}
printf("相加后的结果为%d/%d",e, f);
}
void subf(int a, int b, int c, int d)//a为第⼀个分数的分⼦,b为第⼀个分数的分母,c为第⼀个分数的分⼦,d为第⼆个分数的分母{
int e, f, i;//e为运算后的分⼦,f为运算后的分母
f = b * d;
e = a * d - b * c;
for (i = 2; i < f; i++)
{
if ((e % i == 0) && (f % i == 0))
{
e /= i;
f /= i;
}
}
printf("相减后的结果为%d/%d", e, f);
}
void divf(int a, int b, int c, int d)//a为第⼀个分数的分⼦,b为第⼀个分数的分母,c为第⼀个分数的分⼦,d为第⼆个分数的分母{
int e, f, i;//e为运算后的分⼦,f为运算后的分母
f = b * c;
e = a * d;
for (i = 2; i < f; i++)
{
if ((e % i == 0) && (f % i == 0))
{
e /= i;
f /= i;
}
}
printf("相除后的结果为%d/%d", e, f);
}
void mulf(int a, int b, int c, int d)//a为第⼀个分数的分⼦,b为第⼀个分数的分母,c为第⼀个分数的分⼦,d为第⼆个分数的分母
{
int e, f, i;//e为运算后的分⼦,f为运算后的分母
f = b * d;
e = a * c;
for (i = 2; i < f; i++)
{
if ((e % i == 0) && (f % i == 0))
{
e /= i;
f /= i;
}
}
printf("相乘后的结果为%d/%d", e, f);
}
void main()
{
int k,a,b,c,d;
printf("整数加法请输⼊1,整数减法请输⼊2,整数乘法请输⼊3,整数除法请输⼊4,分数加法请输⼊5,分数减法请输⼊6,分数乘法请输⼊7,分数除法请输⼊8:\n");
scanf_s("%d", &k);
switch (k)
{
case 1:
printf("请输⼊相加的两个数:");
scanf_s("%d %d", &a, &b);
addint(a , b);
break;
case 2:
printf("请输⼊相减的两个数:");
scanf_s("%d %d", &a, &b);
subint(a, b);
break;
case 3:
printf("请输⼊相乘的两个数:");
scanf_s("%d %d", &a, &b);
mulint(a, b);
break;
case 4:
printf("请输⼊相除的两个数:");
scanf_s("%f %f", &a, &b);
divint(a, b);
break;
case 5:
printf("请输⼊相加的两个分数(分别输⼊分⼦和分母):");
scanf_s("%d %d %d %d", &a, &b,&c,&d);
addf(a, b,c,d);
break;
case 6:
printf("请输⼊相减的两个分数(分别输⼊分⼦和分母):");
scanf_s("%d %d %d %d", &a, &b, &c, &d);
subf(a, b, c, d);
break;
case 7:
printf("请输⼊相乘的两个分数(分别输⼊分⼦和分母):"); scanf_s("%d %d %d %d", &a, &b, &c, &d);
mulf(a, b, c, d);
break;
case 8:
printf("请输⼊相除的两个分数(分别输⼊分⼦和分母):"); scanf_s("%d %d %d %d", &a, &b, &c, &d);
divf(a, b, c, d);
break;
}
}
⼩结:在刚完成代码的时候,进⾏分数的四则运算时,输出的数据总是不对,并且输出的数据分⼦分母特别⼤,不知道什么原因,将scanf⾥⾯%d之间的逗号去掉,运⾏程序时也不输⼊逗号,数据与数据之间空格隔开后,结果终于正常,但是在整数的除法运算中输出的结果还是不是正确答案,虽然形式是对的,但是结果不对,修改多次数据类型后还是不⾏。
psp2.1任务内容计划完成需要的时
间(min)实际完成需要的时间(min)
Planning计划108 Estimate估计这个任务需要多少时间,
并规划⼤致⼯作步骤
1012 Development开发100150 Analysis需求分析(包括学习新技术)12 5 Design Spec⽣成设计⽂档5 5 Design Review设计复审5 5 Coding Standard代码规范3 2 Design具体设计1012
Coding具体编码3621 Code Review代码复审57
Test测试(⾃我测试,修改代码,
提交修改)
1015
Reporting报告9 6 Test Report测试报告3 2 Size Measurement计算⼯作量2 1
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计
划
3
3。