鱼C论坛

 找回密码
 立即注册
查看: 2364|回复: 7

学C语言视频写的一个例题 新人求助

[复制链接]
发表于 2014-3-12 21:33:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目是这样:输入a和b两个数,第一次调用process时找出a和b中大者,第二次找出其中小者,第三次求a与b之和。
程序运行结果:MAX是输入的第一个数字,MIN和ADD像是地址前加了个负号。

帮忙看看那里有问题?

#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:\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);

}


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-3-12 21:44:50 | 显示全部楼层
本帖最后由 oggplay 于 2014-3-12 21:46 编辑

小问题,括号打成汉字的了,我给你该过来了,以后别写 void main()
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. void  main( )

  4. {
  5.     int max(int x,int y);
  6.     int min(int x,int y);
  7.     int add(int x,int y);
  8.     void process(int x,int y,int (*fun)());
  9.     int a,b;
  10.     printf("enter a and b:\n");

  11.     scanf("%d,%d",&a,&b);

  12.     printf("max=");

  13.     process(a,b,max);

  14.     printf("min=");

  15.     process(a,b,min);

  16.     printf("sum=");

  17.     process(a,b,add);

  18. }

  19. int max(int x,int y)

  20. {
  21.     int z;

  22.     if(x>y)
  23.         
  24.         z=x;

  25.     else
  26.         
  27.         z=y;

  28.     return(z);

  29. }

  30. int min(int x,int y)

  31. {   
  32.     int z;

  33.     if(x<y)
  34.         
  35.         z=x;

  36.     else
  37.         z=y;

  38.     return z;

  39. }

  40. int add(int x,int y)

  41. {

  42.     int z;

  43.     z=x+y;

  44.     return z;

  45. }

  46. void process(int x,int y,int (*fun)())

  47. {
  48.     int result;

  49.     result=(*fun)(x,y);

  50.     printf("%d\n",result);

  51. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-12 22:02:57 | 显示全部楼层
333.png


  1. #include <stdio.h>
  2. #include <iostream>
  3. using namespace std;
  4. int Max(int a, int b)
  5. {
  6.         return a>b?a:b;
  7. }
  8. int Min(int a, int b)
  9. {
  10.         return a>b?b:a;
  11. }
  12. int Add(int a,int b)
  13. {
  14.         return a+b;
  15. }
  16. int process(int (*Fun)(int,int), int a, int b)
  17. {
  18.         return Fun(a,b);
  19. }
  20. int main()
  21. {
  22.         int a,b,r;
  23.         printf("输入两个数(空格分隔):\n");
  24.         scanf("%d%d",&a,&b);
  25.         printf("两数之中最大:%d\n", process(Max,a,b));
  26.         printf("两数之中最小:%d\n", process(Min,a,b));
  27.         printf("两数之和:%d\n", process(Add,a,b));
  28.     system("pause");
  29.     return 0;
  30. }

复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-13 18:33:50 | 显示全部楼层

还是不对,我复制你的代码过来,要报错
#include <stdlib.h>去掉可以通过,不过又是原来的问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-13 18:37:09 | 显示全部楼层

编译时有错:"eh.h is only for C++!"   
和C有区别么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-13 20:31:30 | 显示全部楼层
游游9527 发表于 2014-3-13 18:37
编译时有错:"eh.h is only for C++!"   
和C有区别么?

那就把02.#include <iostream>

03.using namespace std;
system(“pause”);
这3行去掉
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-13 21:33:15 | 显示全部楼层
编译器问题吧?我在C++6.0上是可以的。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-14 09:57:15 | 显示全部楼层
路过看看= =!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-21 09:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表