用一个函数通过指针再调用其他函数,然后输出最大,最小,和和值的代码,运行不对~
#include <stdio.h>int max(int i,int j)
{
int k;
if(i>j)
{
k=i;
}
else
{
k=j;
}
return k;
}
int mix(int i,int j)
{
int k;
if(i<j)
{
k=i;
}
else
{
k=j;
}
return k;
}
int add(int i,int j)
{
int k;
k=i+j;
return k;
}
int main()
{
int i,j;
int max(int ,int );
int mix(int ,int );
int add(int ,int );
void process(int x,int y,int(*p)());
printf("请输入两个数:\n");
scanf("%d %d",&i,&j);
printf("最大值是");
process(i,j,max);
printf("最小值是");
process(i,j,mix);
printf("两数和是");
process(i,j,add);
return 0;
}
贴出错误代码看看 恋色天空 发表于 2014-9-23 10:40
贴出错误代码看看
就是没找出来问题 本帖最后由 恋色天空 于 2014-9-23 20:16 编辑
397014622 发表于 2014-9-23 19:49
就是没找出来问题
可能是编译器的问题。在我电脑上没问题,press函数写了吗 其实应该这样做:
#include <stdio.h>
void main()
{
int max(int a,int b);
int min(int a,int b);
int add(int a,int b);
void process(int a,int b,int (*fun)(int a,int b));
int x,y;
scanf("%d,%d",&x,&y);
printf("max=");
process(x,y,max);
printf("min=");
process(x,y,min);
printf("sum=");
process(x,y,add);
}
void process(int a,int b,int (*p)(int a,int b) )
{
int z=(*p)(a,b);
printf("%d\n",z);
}
int max(int a,int b)
{
return a>b?a:b;
}
int min(int a,int b)
{
return a<b?a:b;
}
int add(int a,int b)
{
return a+b;
} 是运行不了吧!你函数声明出现错误,
#include <stdio.h>
int max(int a,int b);
int min(int a,int b);
int add(int a,int b);
void process(int a,int b,int (*fun)(int a,int b));
void main()
{
int x,y;
scanf("%d,%d",&x,&y);
printf("max=");
process(x,y,max);
printf("min=");
process(x,y,min);
printf("sum=");
process(x,y,add);
}
你去试试
自定义函数声明要要放在main()函数外,也就是说必须要放在头文件下面,你放在其他地方编译是不通过的,
页:
[1]