這是源代碼,但是輸出值一直是地址名而不是所存的值,感覺很疑惑,請大佬們幫忙看看
#include<stdio.h>
main()
{
int max(int,int);
int min(int,int);
int add(int,int);
void process(int,int,int (*fun)(int,int));
int a,b;
scanf("%d %d",&a,&b);
process(a,b,max);
printf("max=%d");
process(a,b,min);
printf("min=%d");
process(a,b,add);
printf("add=%d");
}
int max(int x,int y)
{
int z;
if(x>y)
{
z=x;
}
else
{
z=y;
}
return z;
}
int min(int x,int y)
{
int z;
if(x>y)
{
z=y;
}
else
{
z=x;
}
return z;
}
int add(int x,int y)
{
int z;
z=x+y;
return z;
}
void process(int x,int y,int (*fun)(int x,int y))
{
printf("%d\n",(*fun)(x,y));
}
uj5u.com熱心網友回復:
把printf陳述句放到呼叫process函式前面可以正常輸出
#include<stdio.h>
int main()
{
int max(int,int);
int min(int,int);
int add(int,int);
void process(int,int,int (*fun)(int,int));
int a,b;
scanf("%d%d",&a,&b);
printf("max=");
process(a,b,max);
printf("min=");
process(a,b,min);
printf("add=");
process(a,b,add);
}
int max(int x,int y)
{
int z;
if(x>y)
{
z=x;
}
else
{
z=y;
}
return z;
}
int min(int x,int y)
{
int z;
if(x>y)
{
z=y;
}
else
{
z=x;
}
return z;
}
int add(int x,int y)
{
int z;
z=x+y;
return z;
}
void process(int x,int y,int (*fun)(int x,int y))
{
printf("%d\n",(*fun)(x,y));
}
uj5u.com熱心網友回復:
#include<stdio.h>
int main()
{
int max(int,int);
int min(int,int);
int add(int,int);
void process(int,int,int (*fun)(int,int));
int a,b;
scanf("%d %d",&a,&b);
printf("max= ");
process(a,b,max);
//printf("max=%d");
printf("min= ");
process(a,b,min);
//printf("min=%d");
printf("add= ");
process(a,b,add);
//printf("add=%d");
}
int max(int x,int y)
{
int z;
if(x>y)
{
z=x;
}
else
{
z=y;
}
return z;
}
int min(int x,int y)
{
int z;
if(x>y)
{
z=y;
}
else
{
z=x;
}
return z;
}
int add(int x,int y)
{
int z;
z=x+y;
return z;
}
void process(int x,int y,int (*fun)(int x,int y))
{
//printf("%d\n",(*fun)(x,y));
printf("%d\n",fun(x,y));
}
供參考~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/97374.html
標籤:新手樂園
上一篇:使用live555的testRTSPClient,打開流,收不到資料
下一篇:資料結構初學的問題
