题目
解题步骤
(1)分别定义不同功能变量;
(2)输出主页面;
(3)分功能实现;
(4)使用系统函数;
(5)分类输出计算结果;
C语言
#include <stdio.h>
#include <stdlib.h>
void displayMenu()
{
system("cls");
printf(" 欢迎进入计算器\n ");
printf("***************************\n ");
printf("* 1.加法 *\n ");
printf("* 2.减法 *\n ");
printf("* 3.乘法 *\n ");
printf("* 4.除法 *\n ");
printf("* 5.求余 *\n ");
printf("* 6.阶乘 *\n ");
printf("* 7.累加 *\n ");
printf("* 8.结束 *\n ");
printf("***************************\n ");
printf("请输入计算类型编号:");
}
int function(int e)
{
if (e == 1 || e == 0)
return 1;
else
return e * function(e - 1);
}
int main()
{
char user, y;
int input, a = 0, b = 0;
printf("是否进入计算器,y/n(是/否):");
scanf("%c", &user);
if (user == 'y')
displayMenu();
else if (user == 'n')
exit(0);
else
{
printf("输入有误,请重新输入");
exit(0);
}
scanf("%d", &input); //接收计算类型参数
system("cls");
switch (input)
{
case 1:
{
printf("请输入数据:");
scanf("%d%d", &a, &b);
printf("%d+%d=%d\n", a, b, a + b);
break;
}
case 2:
{
printf("请输入数据:");
scanf("%d%d", &a, &b);
printf("%d-%d=%d\n", a, b, a - b);
break;
}
case 3:
{
printf("请输入数据:");
scanf("%d%d", &a, &b);
printf("%d*%d=%d\n", a, b, a * b);
break;
}
case 4:
{
printf("请输入数据:");
scanf("%d%d", &a, &b);
printf("%d/%d=%d\n", a, b, a / b);
break;
}
case 5:
{
printf("请输入数据:");
scanf("%d%d", &a, &b);
printf("%d mold %d=%d\n", a, b, a % b);
break;
}
case 6:
{
int e = 0;
printf("请输入数据:");
scanf("%d", &e);
printf("%d!=%d\n", e, function(e));
break;
}
case 7:
{
int result = 0;
for (int i = 0; i < 1000; i++)
{
char input1;
printf("退出请按任意键,计算请按M键:");
scanf("%s", &input1);
if (input1 == 'M' || input1 == 'm')
{
int c, d;
printf("请输入数据:");
scanf("%d%d", &c, &d);
printf("result=%d\n", result += (c + d));
}
else
exit(0);
}
break;
}
case 8:
{
printf("谢谢使用,再见!");
exit(0);
break;
}
default:
printf("error,please try again!!!");
}
system("pause");
return 0;
}
实现图
说明
- 完整包含所使用函数的头文件;
- “阶乘” 功能使用递归思想解决,找到计算过程中的递归体
e * function(e - 1)
,并注意特殊位置的处理,如 0 和 1;- 定义
char
类型变量时,若参与比较,本质是比较其 ASCII码 值大小,使用==
符号判断是否相等时需要加单引号‘’
;- “累加“ 功能实现中,第一次及第二次接收数据合并处理,都放入循环。否则输出结果和实际运算结果存在偏差,且差值为第一次数据计算结果,此处使用
result += (c + d)
保留上次计算结果。_
不知道机智的你有没有发现,如果按照题目的要求,我们只需要输出界面,很easy。额,后知后觉,写完才发现,权当练手啦!