| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 369 人关注过本帖
标题:一道头于函数嵌套的题
只看楼主 加入收藏
LOVE燕
Rank: 2
等 级:论坛游民
帖 子:37
专家分:12
注 册:2012-11-14
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:5 
一道头于函数嵌套的题
题目:3个同学进行踢毽子比赛,编写一个函数,求出踢的个数最多和最少的差。。
提示:分别编写2个函数求3个数的最大和最小值。然后再编写一个函数,调用最大值和最小值函数的差,将求差的结果返回。。
以下是我做的,请各位高手帮帮看看哪里出错了。
/*  HELLO.C -- Hello, world */

#include "stdio.h"

int fnam(int num1[]);
int fnam(int num1[])

{ int i;
    for(i=0;i<3;i++)
    { if(num1[i]>num1[i+1])
       num1[i+1]=num1[i];
    }
   return num1[2];
}

int fnAm(int num2[])
{ int i;
    for(i=0;i<3;i++)
    {if(num2[i]<num2[i+1])
      num2[i+1]=num2[i];
    }
  return num2[2];
}
 int fnams(int num1,int num2)
 { int i;
    fnam(num1);
    fnAm(num2);
    printf("%d    %d",fnam(num1),fnAm(num2));
    i=fnam(num1)-fnAm(num2);
    printf("i=%d",i);
  return i;
 }



void main()
{ int k,Hum,iHum,iHums,inum1,inum2;
   int num[3];
    for(k=0;k<3;k++)
    {printf("please input num:");
        scanf("%d",&num[k]);

    }

    iHums=fnams(inum1,inum2);
    Hum=fnam(num);
    iHum=fnAm(num);


    printf(" %d",iHums);
    getch();
}
搜索更多相关主题的帖子: include return 最大值 
2012-11-16 09:17
LOVE燕
Rank: 2
等 级:论坛游民
帖 子:37
专家分:12
注 册:2012-11-14
收藏
得分:0 
/*  HELLO.C -- Hello, world */

#include "stdio.h"

int fnam(int num1[]);
int fnam(int num1[])

{ int i;
    for(i=0;i<3;i++)
    { if(num1[i]>num1[i+1])
       num1[i+1]=num1[i];
    }
    printf("%d   ",num1[2]);
   return num1[2];
}

int fnAm(int num2[])
{ int i;
    for(i=0;i<3;i++)
    {if(num2[i]<num2[i+1])
      num2[i+1]=num2[i];
    }
  printf("%d  \n",num2[2]);
  return num2[2];
}




void main()
{ int k,Hum,iHum,s,num;
   int num1[3],num2[3];
    for(k=0;k<3;k++)
    {printf("please input num:");
        scanf("%d",&num1[k]);

    }

        Hum=fnam(num);
        iHum=fnAm(num);


    s=Hum-iHum;
    printf("%d-%d= %d",Hum,iHum,s);
    getch();
}

为什么改成这样。最大值可以等于Hum,,而最小值却不可以等于iHum..最小值一值都是输入的第一个num那个数。。怎么回事呀。。刚刚学的嵌套。还不怎么熟。。忘高手指点。
2012-11-16 09:41
a635958000
Rank: 4
等 级:业余侠客
帖 子:55
专家分:253
注 册:2012-10-26
收藏
得分:10 
你的num2[3]数组里面的数呢,没有你怎么调用的fnAm()呀
2012-11-16 09:58
a635958000
Rank: 4
等 级:业余侠客
帖 子:55
专家分:253
注 册:2012-10-26
收藏
得分:0 
/*  HELLO.C -- Hello, world */

#include "stdio.h"
#include"conio.h"
int fnam(int num1[])

{ int i;
    for(i=0;i<3;i++)
    { if(num1[i]>num1[i+1])
       num1[i+1]=num1[i];
    }
    printf("%d   ",num1[2]);
   return num1[2];
}

int fnAm(int num2[])
{ int i;
    for(i=0;i<3;i++)
    {if(num2[i]<num2[i+1])
      num2[i+1]=num2[i];
    }
  printf("%d  \n",num2[2]);
  return num2[2];
}




void main()
{ int k,Hum,iHum,s,num;
   int num1[3],num2[3];
    for(k=0;k<3;k++)
    {printf("please input num:");
        scanf("%d",&num1[k]);

    }

        Hum=fnam(num1);
        iHum=fnAm(num1);


    s=Hum-iHum;
    printf("%d-%d= %d",Hum,iHum,s);
    getch();
}

帮你改了下,你看看
2012-11-16 10:03
LOVE燕
Rank: 2
等 级:论坛游民
帖 子:37
专家分:12
注 册:2012-11-14
收藏
得分:0 
回复 4楼 a635958000
根据你的改法..结果还是和我的一样的..
2012-11-16 17:57
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
我前2天写的求一个数组中的最大值和最小值的函数
不知道能不能帮到你

int mina(int s[],int n)
{
 if(n==0) return s[n];
    int a=s[0];
 int b=mina(s+1,n-1);
    return a<b?a:b;
}
int maxa(int s[],int n)
{
 if(n==0) return s[n];
    int a=s[0];
 int b=maxa(s+1,n-1);
    return a>b?a:b;
}


DO IT YOURSELF !
2012-11-16 18:01
快速回复:一道头于函数嵌套的题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016534 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved