题目
解题步骤
(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。额,后知后觉,写完才发现,权当练手啦!