学C语言视频写的一个例题 新人求助
题目是这样:输入a和b两个数,第一次调用process时找出a和b中大者,第二次找出其中小者,第三次求a与b之和。程序运行结果:MAX是输入的第一个数字,MIN和ADD像是地址前加了个负号。
帮忙看看那里有问题?
#include <stdio.h>
voidmain( )
{
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:\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);
}
void process(int x,int y,int (*fun)())
{
int result;
result=(*fun)(x,y);
printf("%d\n",result);
}
本帖最后由 oggplay 于 2014-3-12 21:46 编辑
小问题,括号打成汉字的了,我给你该过来了,以后别写 void main()
#include <stdio.h>
#include <stdlib.h>
voidmain( )
{
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:\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;
}
void process(int x,int y,int (*fun)())
{
int result;
result=(*fun)(x,y);
printf("%d\n",result);
}
#include <stdio.h>
#include <iostream>
using namespace std;
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;
}
int process(int (*Fun)(int,int), int a, int b)
{
return Fun(a,b);
}
int main()
{
int a,b,r;
printf("输入两个数(空格分隔):\n");
scanf("%d%d",&a,&b);
printf("两数之中最大:%d\n", process(Max,a,b));
printf("两数之中最小:%d\n", process(Min,a,b));
printf("两数之和:%d\n", process(Add,a,b));
system("pause");
return 0;
}
oggplay 发表于 2014-3-12 21:44 static/image/common/back.gif
小问题,括号打成汉字的了,我给你该过来了,以后别写 void main()
还是不对,我复制你的代码过来,要报错
#include <stdlib.h>去掉可以通过,不过又是原来的问题 machimilk 发表于 2014-3-12 22:02 static/image/common/back.gif
编译时有错:"eh.h is only for C++!"
和C有区别么? 游游9527 发表于 2014-3-13 18:37 static/image/common/back.gif
编译时有错:"eh.h is only for C++!"
和C有区别么?
那就把02.#include <iostream>
03.using namespace std;
system(“pause”);
这3行去掉 编译器问题吧?我在C++6.0上是可以的。。 路过看看= =!
页:
[1]