第1个回答 2014-04-07
你忘了在scanf语句那里,加"&"这个符号了。
这是个经常会犯的错误,以后请注意。
#include<stdio.h>
void main()
{
int max(int x,int y);
int min(int x,int y);
int add(int x,int y);
void process(int x,int y,int(*fun)());
int a,b;
printf("enter a and b:");
scanf("%d %d",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);
}
追问谢谢
第2个回答 2014-04-07
#include <stdio.h>
int Max(int a,int b);
int Min(int a,int b);
int Add(int a,int b);
int main()
{
int a=0,b=0;
printf("Enter a and b:");
scanf("%d%d",&a,&b);
printf("Max=%d\nMin=%d\nAdd=%d\n",Max(a,b),Min(a,b),Add(a,b));
return 0;
}
int Max(int a,int b)
{
return a>b?a:b;
}
int Min(int a,int b)
{
return a>b?b:a;
}
int Add(int a,int b)
{
return a+b;
}
第3个回答 2014-04-07
#include<stdio.h>
void process(int x,int y,int(*fun)(int,int));
void main()
{
int max(int x,int y);
int min(int x,int y);
int add(int x,int y);
int a,b;
printf("enter a and 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,int))
{
int z;
z=(*fun)(x,y);
printf("%d",z);
}本回答被提问者采纳