| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 287 人关注过本帖
标题:关于函数嵌套的问题。。新手求解。。各位大虾帮帮忙。。
只看楼主 加入收藏
LOVE燕
Rank: 2
等 级:论坛游民
帖 子:37
专家分:12
注 册:2012-11-14
结帖率:90.91%
收藏
已结贴  问题点数:10 回复次数:4 
关于函数嵌套的问题。。新手求解。。各位大虾帮帮忙。。
#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("Max=%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("Min=%d",num2[2]);
  return num2[2];
}




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

    }


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


    s=Hum-iHum;


    printf("%d-%d= %d",Hum,iHum,s);
    getch();
}
为什么我输出入三数字之后。。他能把最大的那个数找出来。。而最小的那个数却是我输入三个数字时的第一个。。无论我怎么输入。。最小的那个数就是无法找得出来。。希望几位大虾帮忙看看哪里出错啦。。在这先谢谢了。。
搜索更多相关主题的帖子: include return 最大值 
2012-11-16 18:22
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
你加一句代码 就知道怎么回事了
int fnAm(int num2[])
{ int i;
    for(i=0;i<3;i++)           /*这里有错*/
    {if(num2[i]<num2[i+1])
      num2[i+1]=num2[i];
      printf("i=%d num2[0]=%d num2[1]=%d num2[2]=%d\n",i,num2[0],num2[1],num2[2]);
    }printf("Min=%d\n",num2[2]);
  return num2[2];
}



[ 本帖最后由 wp231957 于 2012-11-16 18:50 编辑 ]

DO IT YOURSELF !
2012-11-16 18:41
LOVE燕
Rank: 2
等 级:论坛游民
帖 子:37
专家分:12
注 册:2012-11-14
收藏
得分:0 
回复 2楼 wp231957
为什么所有的值全都等于第一个的呢。。。我不是有赋值了吗?怎么会这样呀!
2012-11-16 19:17
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用LOVE燕在2012-11-16 19:17:28的发言:

为什么所有的值全都等于第一个的呢。。。我不是有赋值了吗?怎么会这样呀!
因为你第一函数 就已经把三个数组元素都变成最大值了
所以第二个函数就不工作了
换句话说 数组元素完全被改变了

DO IT YOURSELF !
2012-11-16 19:20
LOVE燕
Rank: 2
等 级:论坛游民
帖 子:37
专家分:12
注 册:2012-11-14
收藏
得分:0 
回复 4楼 wp231957
根据你说的。。我把编程改了下。。可以了。谢谢你呀!
我改成了以下这样的。。你看下是不是可以。
#include "stdio.h"

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

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

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




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

    }


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


    s=Hum-iHum;


    printf("%d-%d= %d",Hum,iHum,s);
    getch();
}
2012-11-17 09:38
快速回复:关于函数嵌套的问题。。新手求解。。各位大虾帮帮忙。。
数据加载中...
 
   



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

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