|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
每次运行会报错,各位鱼油们帮忙看一看哈。
#include<stdio.h>
void main(){
int max(int,int);
int min(int,int);
int add(int,int);
process (int ,int,int(*fun)());
int a,b;
printf("输入两个数字:\n");
scanf("%d %d",&a,&b);
printf("max = ");
process(a,b,max);
printf("min = ");
process(a,b,min);
printf("sum = ");
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 = x;
}else{
z = y;
}
return z;
}
int add(int x,int y){
int z;
z = x+y;
return z;
}
本帖最后由 sunrise085 于 2019-12-23 17:17 编辑
因为你的程序中process函数没有声明也没有定义。 #include<stdio.h>
void main(){
int max(int,int);
int min(int,int);
int add(int,int);
void process (int ,int,int(*p)(int,int));//函数声明,这里略有修改,将函数返回值设为void
int a,b;
printf("输入两个数字:\n");
scanf("%d %d",&a,&b);
printf("max = ");
process(a,b,max);
printf("min = ");
process(a,b,min);
printf("sum = ");
process(a,b,add);
}
void process(int x,int y,int(*p)(int,int)){ //函数定义
printf("%d\n", p(x,y));
}
//以下三个功能函数也略作修改,压缩函数长度
int max(int x,int y){
return x>y?x:y;
}
int min(int x,int y){
return x<y?x:y;
}
int add(int x,int y){
return x+y;
}
|
|