#include <stdio.h> //运用函数指针数组编写计算器 void menu(); 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; } int main() { int input = 0; int x = 0; int y = 0; //函数指针数组定义 // []优先级高与 * ,所以pArr[]是数组 即pArr[] // 在与 * 结合,变为指针数组 即*pArr[] // 在定义这个指针数组指向有两个参数类型为int的函数 即(*pArr[])(int,int) // 返回值为int类型的函数指针数组 即int(*pArr[])(int,int) int(*pArr[])(int,int) = {0,Add, Mul,Div,Sub}; do { //定义菜单 menu(); printf("Please input operator:>"); scanf("%d",&input); if(input >= 1 && input <= 5) { printf("\nPlease input double num:>"); scanf("%d%d",&x,&y); //通过地址调用函数 //通过pArr[input]找到元素地址 //通过pArr[input](x,y)调用函数 printf("Output: %d\n",pArr[input](x,y)); } else if(input == 0) //0退出系统 { printf("exit"); } else //输出不在范围数字 { printf("input error!\n"); } } while (input); } void menu() { printf("********************\n"); printf("*** 1.Add 2.Mul***\n"); printf("*** 3.Div 4.Sub***\n"); printf("*** 0.exit ***\n"); printf("********************\n"); }
运用函数指针数组编写计算器 {计算器编写应用}
最新推荐文章于 2024-11-14 01:08:36 发布