1 .计算机的简易实现
想要实现计算机的简易实现,这里讲两种方法,第一种是不用指针知识,第二种为用指针知识
1.不用指针的计算机实现
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void menu() {
printf("********************\n");
printf("***1.add 2.sub***\n");
printf("***3.mul 4.div***\n");
printf("***0.exit ***\n");
printf("********************\n");
}
int add(int a,int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
int mul(int a, int b) {
return a * b;
}
int div(int a, int b) {
return a / b;
}
int main()
{
int input = 0;
int a = 0, b = 0;
int ret = 0;
//这里可以存放多个函数地址
do {
menu();
scanf("%d", &input);
switch (input) {
case 1:
printf("请输入两个数\n");
scanf("%d %d", &a, &b);
ret = add(a, b);
printf("结果是%d\n", ret);
break;
case 2:
printf("请输入两个数\n");
scanf("%d %d", &a, &b);
ret = sub(a, b);
printf("结果是%d\n", ret);
break;
case 3:
printf("请输入两个数\n");
scanf("%d %d", &a, &b);
ret = mul(a, b);
printf("结果是%d\n", ret);
break;
case 4:
printf("请输入两个数\n");
scanf("%d %d", &a, &b);
ret = div(a, b);
printf("结果是%d\n", ret);
break;
}
} while (input);
if (input == 0) {
printf("您已退出");
}
}
注意事项:避免变量多次重复定义
2.用指针的计算机实现
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void menu() {
printf("********************\n");
printf("***1.add 2.sub***\n");
printf("***3.mul 4.div***\n");
printf("***0.exit ***\n");
printf("********************\n");
}
int add(int a,int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
int mul(int a, int b) {
return a * b;
}
int div(int a, int b) {
return a / b;
}
int main()
{
int input = 0;
//这里可以存放多个函数地址
int (*p[5])(int a, int b) = { 0,add,sub,mul,div };
do {
menu();
scanf("%d", &input);
if (input<=4&&input>=1) {
printf("请输入两个数\n");
int a = 0, b = 0;
scanf("%d %d", &a, &b);
printf("得到的结果是%d\n", p[input](a, b));
}
} while (input);
if (input == 0) {
printf("您已退出");
}
}
注意函数指针的使用:int (*p[5]) (int a,int b),可以实现存放多个函数指针