C语言_指针_写一个计算器

使用函数指针,回调函数
//写一个计算器

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 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 calc(int (*pf)(int,int))
{
	int ret = 0;
	int x = 0;
	int y = 0;
	printf("请输入两个整数:>\n");
	scanf("%d%d", &x, &y);
	ret = pf(x, y);
	printf("输出结果:%d\n", ret);
}

int main()
{
	int input = 0;
	do 
	{
		menu();
		scanf("%d",&input);
		switch (input)
		{
		case 1:
			calc(Add);  //calc(参数是函数指针)
			break;
		case 2:
			calc(Sub);
			break;
		case 3:
			calc(Mul);
			break;
		case 4:
			calc(Div);
			break;
		case 0:
			break;
		default:
			printf("输入错误\n");
		}
	} while (input);

	return 0;
}
posted @ 2026-05-01 18:09  火炎焱大兔汁  阅读(10)  评论(0)    收藏  举报