#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 | 计划 | 10 | 8 |
| Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 10 | 12 |
| Development | 开发 | 100 | 150 |
| Analysis | 需求分析(包括学习新技术) | 12 | 5 |
| Design Spec | 生成设计文档 | 5 | 5 |
| Design Review | 设计复审 | 5 | 5 |
| Coding Standard | 代码规范 | 3 | 2 |
| Design | 具体设计 | 10 | 12 |
| Coding | 具体编码 | 36 | 21 |
| Code Review | 代码复审 | 5 | 7 |
| Test | 测试(自我测试,修改代码,提交修改) | 10 | 15 |
| Reporting | 报告 | 9 | 6 |
| Test Report | 测试报告 | 3 | 2 |
| Size Measurement | 计算工作量 | 2 | 1 |
| Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 3 | 3 |

浙公网安备 33010602011771号