我是太阳lyj 发表于 2018-2-13 19:24:01

请问错在哪里了

设置一个process函数,在调用他时显示不同的功能,输入a,b,第一次输入时求出a,b中较大者,第二次输入时求出其中较小者,第三次输出时求和。
#include<stdio.h>
void main()
{ int a,b;
int max(x,y);
int min(x,y);
int add(x,y);
void process(int x,int y,int(*fun)());
printf("please input two numbers:\n");
scanf("%d,%d",&a,&b);
printf("max=");
process(a,b,max);
printf("min=");
process(a,b,min);
printf("sum=");
process(a,b,add);
}
voidprocess(int x,int y,int (*fun)(int,int))
{
int result;
result=(*fun)(x,y);
printf("%d\n",result);
}
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 p;
if(x>y)
{
p=y;
}
else
{
   p=x;
}
return p;
}
int add(int x,int y)
{
      int sum;
    sum=x+y;
    return sum;
}

ba21 发表于 2018-2-13 20:38:23

请问错在哪里了 ??????????????????

wjp 发表于 2018-2-14 04:12:44

函数声明错了,带上参数类型,声明不要写在main函数里面

我是太阳lyj 发表于 2018-2-14 09:56:07

我是太阳lyj 发表于 2018-2-14 09:58:51

ba21 发表于 2018-2-13 20:38
请问错在哪里了 ??????????????????

你是用我的代码运行的吗? 我自己运行输入2,3后显示 min与max显示为-858993460和-858993458

ba21 发表于 2018-2-14 18:06:24

我是太阳lyj 发表于 2018-2-14 09:58
你是用我的代码运行的吗? 我自己运行输入2,3后显示 min与max显示为-858993460和-858993458

是的

ba21 发表于 2018-2-14 18:06:39

wjp 发表于 2018-2-14 04:12
函数声明错了,带上参数类型,声明不要写在main函数里面

声明可以写main函数里

wjp 发表于 2018-2-15 06:20:04

感觉你的声明怪怪的void process(int x,int y,int(*fun)());int (*fun)()没参数这样行吗?scanf("%d,%d",&a,&b)还有就是%d,%d多了个逗号
页: [1]
查看完整版本: 请问错在哪里了