C语言:回调函数实现计算器。

回调函数:通过函数指针调用的函数。

#include<stdio.h>
int add(int x, int y)
{
    
    
	return x + y;
}
int sub(int x, int y)
{
    
    
	return x - y;
}
int mul(int x, int y)
{
    
    
	return x * y;
}
int div(int x, int y)
{
    
    
	return x / y;
}
void menu()
{
    
    
	printf("1.加、2.减、3.乘、4.除、0.退出\n");
}
void calc(int (*p)(int, int))
{
    
    
	int x = 0;
	int y = 0;

	printf("请输入两个数:");
	scanf("%d%d", &x, &y);
	printf("%d\n", p(x, y));
}
int main()
{
    
    
	int input = 0;
	
	int (*p[5])(int, int) = {
    
     0,add,sub,mul,div };
	do {
    
    
		menu();
		printf("请选择:");
		scanf("%d", &input);
		switch (input) 
		{
    
    
		case 1:
			calc(add);
			break;
		case 2:
			calc(sub);
			break;
		case 3:
			calc(mul);
			break;
		case 4:
			calc(div);
			break;
		case 0:
			printf("退出。\n");
			break;
		default:
			printf("输入有误。\n");
			break;
		}

	} while (input);

	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_45275802/article/details/112947775