397014622 发表于 2014-9-20 10:20:38

这个实现调用一个函数,实现找最大,最小,和值的程序不晓得哪里出错了,无法实现

#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-21 17:16:40

本帖最后由 ●初晨猛胾● 于 2014-9-21 17:18 编辑

你主要是对函数的调用这块出错了,你比较一下我俩的代码,你就能发现你试一下我这个
#include<stdio.h>
int max(int a,int b)
{
      int k;
      if(a>b)
      {
                k=a;
      }
      else k=b;
      return k;
}
int min(int a,int b)
{
      int k;
      if(a<b)
      {
                k=a;
      }
      else k=b;
      return k;
      
}
int add(int a,int b)
{
      int k;
      k=a+b;
      return k;
}
void main()
{
      
      int add(int a,int b);
      int min(int a,int b);
      int max(int a,int b);
      int a,b;
      printf("请输入两个数,中间用逗号隔开:\n");
      scanf("%d,%d",&a,&b);
      printf("最大数是:%d\n",max(a,b));
      printf("最小的数是:%d\n",min(a,b));
      printf("两个数的和是:%d\n",add(a,b));
}

仰望天上的光 发表于 2014-9-21 19:22:37

#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;
}

//&frac14;&Oacute;&Eacute;&Iuml;&Otilde;&acirc;&cedil;&ouml;&ordm;&macr;&Ecirc;&yacute;&para;¨&Ograve;&aring;
void process(int x,int y,int(*p)(int, int))
{
        printf("%d\n",p(x,y));
}

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)());//&ETH;&THORN;&cedil;&Auml;&Otilde;&acirc;&cedil;&ouml;&ordm;&macr;&Ecirc;&yacute;&micro;&Auml;&Eacute;ù&Atilde;÷
        void process(int x,int y,int(*p)(int, int));
       
        printf("&Ccedil;&euml;&Ecirc;&auml;&Egrave;&euml;&Aacute;&frac12;&cedil;&ouml;&Ecirc;&yacute;:\n");
        scanf("%d %d",&i,&j);
       
        printf("×&icirc;&acute;ó&Ouml;&micro;&Ecirc;&Ccedil;");
        process(i,j,max);
       
        printf("×&icirc;&ETH;&iexcl;&Ouml;&micro;&Ecirc;&Ccedil;");
        process(i,j,mix);
       
        printf("&Aacute;&frac12;&Ecirc;&yacute;&ordm;&Iacute;&Ecirc;&Ccedil;");
        process(i,j,add);
       
        return 0;
}

397014622 发表于 2014-9-22 10:50:24

●初晨猛胾● 发表于 2014-9-21 17:16
你主要是对函数的调用这块出错了,你比较一下我俩的代码,你就能发现你试一下我这个

你没懂我的意思,这个例题是小甲鱼视频里面关于指针那章一个问题,要达到调用同一个函数process达到求最大最小和和值的作用,你这个里面是分别用的

397014622 发表于 2014-9-22 10:55:32

仰望天上的光 发表于 2014-9-21 19:22


额,我还是没看到我错在哪里额

恋色天空 发表于 2014-9-22 13:24:28

定义max函数时,有一个赋值语句丢分号了
页: [1]
查看完整版本: 这个实现调用一个函数,实现找最大,最小,和值的程序不晓得哪里出错了,无法实现