计数器
方法一:常规思路
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;
}
double Div(int x, int y)//除法
{
return x / y;
}
void menu()//菜单
{
printf("****************************\n");
printf("*******1.加法 2.减法*******\n");
printf("*******3.乘法 4.除法*******\n");
printf("********** 0.退出 **********\n");
}
int main()//主函数
{
int input = 0;//从键盘输入的可以选择功能的数字
int x = 0;//参数一
int y = 0;//参数二
int ret = 0;//临时变量
do
{
menu();//调用菜单
printf("请选择:>");
scanf_s("%d", &input);
switch (input)
{
case 1:
printf("请输入数字:>");
scanf_s("%d %d", &x, &y);
ret = Add(x, y);
printf("%d\n", ret);
break;
case 2:
printf("请输入数字:>");
scanf_s("%d %d", &x, &y);
ret = Sub(x, y);
printf("%d\n", ret);
break;
case 3:
printf("请输入数字:>");
scanf_s("%d %d", &x, &y);
ret = Mul(x, y);
printf("%d\n", ret);
break;
case 4:
printf("请输入数字:>");
scanf_s("%d %d", &x, &y);
double m = Div(x, y);
printf("%lf\n", m);
break;
case 0:
printf("退出\n");
break;
default:
printf("选择错误,请重新选择\n");
break;
}
} while (input);
return 0;
}
方法二:封装自定义函数,并调用
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("****************************\n");
printf("*******1.加法 2.减法*******\n");
printf("*******3.乘法 4.除法*******\n");
printf("********** 0.退出 **********\n");
}
void Calc(int (*Pf)(int, int))//将多个功能封装成一个自定义函数(函数指针)
{
int x = 0;//参数一
int y = 0;//参数二
int ret = 0;//临时变量
printf("请输入数字:>");
scanf_s("%d %d", &x, &y);
ret = Pf(x, y);//回调函数
printf("%d\n", ret);
}
int main()//主函数
{
int input = 0;//从键盘输入的可以选择功能的数字
do
{
menu();//调用菜单
printf("请选择:>");
scanf_s("%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;
}
方法三:应用函数指针数组
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("****************************\n");
printf("*******1.加法 2.减法*******\n");
printf("*******3.乘法 4.除法*******\n");
printf("********** 0.退出 **********\n");
}
int main()//主函数
{
int input = 0;
int x = 0;
int y = 0;
int ret = 0;
int (*Pfarr[5])(int, int) = { 0,Add,Sub,Mul,Div };//函数指针数组
do
{
menu();//调用菜单
printf("请选择:>");
scanf_s("%d", &input);
if (input >= 1 && input <= 4)
{
printf("请输入数字:>");
scanf_s("%d %d", &x, &y);
ret = Pfarr[input](x, y);//根据选择的功能调用自定义函数
printf("%d\n", ret);//打印
}
else if (input == 0)
{
printf("退出\n");
berak;
}
else//超出范围内的数
{
printf("输入错误,请重新选择\n");
}
} while (input);
return 0;
}