编程学习网 > 编程语言 > C/C++开发 > 用c语言编写四则运算程序(C语言四则运算实现的三种方法详解)
2023
02-16

用c语言编写四则运算程序(C语言四则运算实现的三种方法详解)

本文编程学习网主要和大家介绍用C语言编写四则运算程序,通过具体的代码向大家展示,希望对大家学习C语言编程入门有所帮助。

1. 方法一:

Switch选择语句实现:

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
int Mod(int x, int y)
{
return x * y;
}
int Del(int x, int y)
{
return x / y;
}
int Add(int x, int y)
{
return x + y;
}
int Sub(int x, int y)
{
return x - y;
}
menu()
{
printf("*********************\n");
printf("******1.乘法运算*****\n");
printf("******2.除法运算*****\n");
printf("******3.加法运算*****\n");
printf("******4.减法运算*****\n");
printf("******5.退出程序*****\n");
printf("*********************\n");



}
enum Option
{
EXIT,
MOD,
DEL,
ADD,
SUB
};
int main()
{
int input;
int a, b;
int ret = 0;
do
{
menu();
printf("请选择:\n");
scanf("%d", &input);
printf("请输入两个整数:\n");
scanf("%d%d", &a,& b);
switch (input)
{
case MOD:
ret = Mod(a,b);
printf("%d\n", ret);
break;
case DEL:
ret = Del(a,b);
printf("%d\n", ret);
break;
case ADD:
ret = Add(a,b);
printf("%d\n", ret);
break;
case SUB:
ret = Sub(a,b);
printf("%d\n", ret);
break;
case EXIT:
printf("退出程序\n");
break;
default:
printf("输入出错,请重新输入\n");
break;
}

} while (input);
return 0;
}

结果:

2. 方法二:

函数指针数组实现:

通过方法一,我们发现代码非常冗余,出现了很多switch语句,不易阅读,那么怎么才能简化代码呢?

int main()
{
int input = 0;
do
{
menu();
int (*pArr[5])(int, int) = { NULL,Mod,Del,Add,Sub };函数指针数组,通过下表来访问数组中存放的函数的地址,进而访问函数;
int x = 0;
int y = 0;
int ret = 0;
printf("请选择:\n");
scanf("%d", &input);
if (input >= 1 && input <= 4)
{
printf("请输入两个数:\n");
scanf("%d%d", &x, &y);
ret = (pArr[input])(x, y);//此时,通过用户输入的选择,进而用函数指针数组来访问函数,之后把函数返回的值赋值给指针;
printf("结果为:%d\n", ret);
}
else if (input == 0)
{
printf("退出程序\n");
break;
}
else
{
printf("输入错误,请重新输入\n");
}
} while (input);
return 0;
}

结果:

方法一和方法二对比,方法二的代码是不是更简洁了,那还有更简洁的办法吗?
3. 方法三:
回调函数方法实现:
回调函数概念:
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个
函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数
的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进
行响应。
代码实现:
int calc(int (*pf)(int, int))
{
int x = 0;
int y = 0;
printf("请输入两个数:\n");
scanf("%d%d", &x, &y);
return pf(x, y);//此时通过这个函数指针去访问所需要访问的函数
}
int main()
{
int input;
int ret = 0;
do
{
menu();
printf("请选择:\n");
scanf("%d", &input);
switch (input)
{
case MOD:
ret = calc(Mod);
printf("%d\n", ret);
break;
case DEL:
ret = ret = calc(Del);;
printf("%d\n", ret);
break;
case ADD:
ret = ret = calc(Add);
printf("%d\n", ret);
break;
case SUB:
ret = ret = calc(Sub);
printf("%d\n", ret);
break;
case EXIT:
printf("退出程序\n");
break;
default:
printf("输入出错,请重新输入\n");
break;
}

} while (input);
return 0;
}

以上就是“用c语言编写四则运算程序”的详细内容,想要了解更多C语言教程欢迎持续关注编程学习网!

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取