C语言大神求救,关于C语言输入a b两个数, 第一次调用process找出a b中大的,再找出a b小的,再a b求和

#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);
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 z;
z=(*fun)(x,y);
printf("%d",z);
}有错吗

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
int process(int a,int b,char fun){
int i;
if(!fun) return a+b;
else if(fun==1)
return a>b ? a : b;
else if(fun==2)
return a>b ? b : a;
else return 1 << sizeof(int)*8-1;
}
void main(void){
int a,b;
char max=1,min=2,add=0;
printf("Type a & b(integer....)\n");
scanf("%d%d",&a,&b);
printf("Max = %d\nMin = %d\nAdd = %d\n",process(a,b,max),process(a,b,min),process(a,b,add));
}
温馨提示:内容为网友见解,仅供参考
第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);
}本回答被提问者采纳
相似回答