#include
//加法运算
int sum(int a, int b)
{
return a+b ;
}
//减法运算
int minus(int a, int b)
{
return a-b ;
}
void counting(int (*p)(int, int),int a, int b)
{
if(a <0 || b < 0)
{
printf("运算的数值<0\n");
return ;
}
//此处调用指针指向的函数
int result = p(a,b);
printf("计算结果:%d\n",result);
}
int main()
{
int x,y;
char op;
//------------------------------问题----------------------------------
//在此处运行正确
printf("请输入运算符(+、-):");
scanf("%c",&op);
printf("请输入运算值x=");
scanf("%d",&x);
printf("请输入运算值y=");
scanf("%d",&y);
//------------------------------问题----------------------------------
/*为何放此运行会出错????????????
printf("请输入运算符(+、-):");
scanf("%c",&op);
*/
switch(op)
{
case '+':
//sum(x,y);
counting(sum,x,y);
//加法
break;
case '-':
//minus(x,y);
counting(minus,x,y);
//减法
break;
}
return 0;
}
http://blog.csdn.net/21aspnet/article/details/174326
参考这个就明白了。。。