| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 582 人关注过本帖
标题:[原创]寻找志同道合的朋友们
只看楼主 加入收藏
李建伟1289
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2005-11-12
收藏
 问题点数:0 回复次数:6 
[原创]寻找志同道合的朋友们

如果我们求 :要输入两个数打印出其中最大的那么很简单
只要用一些简单的语句就OK!
如果求三个同样如此,到四个五个-----
下面我介绍一种方法:
求5个数时的情况:


int max(int x,int y)
{int x,y;
return(x>y?x:y);
}
main()
{int a,b,c,d,e;
printf("when you input five numbers as follow:\n");
scanf("%d%d%d%d%d\n",&a,&b,&c,&d,&e);
printf("the max=%d",max(e,max(d,max(c,max(a,b)))));
getch();
}
我们可以用同样的方法 来解决更多的数字,
但是这就出现一个问题:当函数调用太多时,
系统容易出错,比如我们想求100000个数时的情况,
用这样的方法是不明智的,不但编写麻烦,而且易出错,
所以我们希望能够有一种方法能够适用于
当你输入任何多个值时都有可以运行,
不用在编写之前考虑调用 多少次函数。
对这个问题的进一步的思考,我想找一个新的解决方案,
主要地是想对它的思想做一下探索,也许这样的问题对于高手来说是
个小CASE,可是对于我们初学的人群来说,我希望有人能和我一样有
这样的感触,喜欢我的思考方式,从一个题目中可以找到很多想法和知识

搜索更多相关主题的帖子: 志同道合 朋友 
2005-12-24 10:29
ryxhh
Rank: 1
等 级:新手上路
威 望:1
帖 子:63
专家分:0
注 册:2005-12-18
收藏
得分:0 
确实如此,深有同感,但愿在其中到更深的提高

2005-12-24 11:56
fabio210
Rank: 1
等 级:新手上路
威 望:1
帖 子:58
专家分:0
注 册:2005-11-6
收藏
得分:0 
数多的时候用数组存储,一次遍历就可以找到最大值了

int max(int x[],int n)
{/*n是数组的长度*/
int i,a=x[0];
for(i=0;i<n;i++)
{if(a<x[i]) a=x[i];}
return a;
}

[此贴子已经被作者于2005-12-24 12:30:23编辑过]


2005-12-24 12:21
conglai
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-12-23
收藏
得分:0 

你在主函数多次调用MAX函数是多此嵌套的方式调用的,编译系统对这种方式是采用堆栈的方法处理的,但堆栈用得太多内存会爆满而导致程序崩溃,所以做很多数据比较时用我上楼的朋友那段是挺好的,不过你喜欢用x>y?x:y,可以自行对我上楼那位同志得程序做点小改动就好了!

2005-12-24 14:25
李建伟1289
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2005-11-12
收藏
得分:0 
[经验]

这是我第一次听到知识,谢谢,但我知道这种方法不好,所以我早就在我的第二篇贴子改正了,我只是想找一些愿意研究性学习的朋友们!


江湖中人向来都是不鸣则已,一鸣惊人。总有一天我要下天山,威振武林!
2005-12-24 15:31
longzhiyong
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2005-12-24
收藏
得分:0 
  在这里面让我学到了更的探索知识的思想,真是想不到一个问题的解决方法精中有精啊。
2005-12-24 17:37
ADALE
Rank: 2
等 级:新手上路
威 望:4
帖 子:483
专家分:0
注 册:2005-11-18
收藏
得分:0 
在这里真是受益匪浅

喜欢宁静的平凡生活
2005-12-25 13:05
快速回复:[原创]寻找志同道合的朋友们
数据加载中...
 
   



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

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