鱼C论坛

 找回密码
 立即注册
查看: 2083|回复: 5

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

[复制链接]
发表于 2014-9-20 10:20:38 | 显示全部楼层 |阅读模式

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

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

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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));
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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;
}

//¼ÓÉÏÕâ¸öº¯Êý¶¨Òå
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)());//ÐÞ¸ÄÕâ¸öº¯ÊýµÄÉùÃ÷
        void process(int x,int y,int(*p)(int, int));
        
        printf("ÇëÊäÈëÁ½¸öÊý:\n");
        scanf("%d %d",&i,&j);
        
        printf("×î´óÖµÊÇ");
        process(i,j,max);
        
        printf("×îСֵÊÇ");
        process(i,j,mix);
        
        printf("Á½ÊýºÍÊÇ");
        process(i,j,add);
        
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2014-9-22 10:50:24 From FishC Mobile | 显示全部楼层
●初晨猛胾● 发表于 2014-9-21 17:16
你主要是对函数的调用这块出错了,你比较一下我俩的代码,你就能发现你试一下我这个

你没懂我的意思,这个例题是小甲鱼视频里面关于指针那章一个问题,要达到调用同一个函数process达到求最大最小和和值的作用,你这个里面是分别用的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-22 10:55:32 From FishC Mobile | 显示全部楼层
仰望天上的光 发表于 2014-9-21 19:22

额,我还是没看到我错在哪里额
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-22 13:24:28 | 显示全部楼层
定义max函数时,有一个赋值语句丢分号了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 01:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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