问题描述
- C代码中句子存放不同两个位置,编译都没错,一个运行正确,一个运行出错
-
#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("运算的数值<0n");
return ;}
//此处调用指针指向的函数 int result = p(a,b); printf("计算结果:%dn",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
参考这个就明白了。。。
时间: 2024-10-31 09:23:05