| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7241 人关注过本帖
标题:[求助]求数组A[10]中的最大值,次大值。谢谢啊
只看楼主 加入收藏
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
这就是我们对题目的理解问题了

假设我让你在一个班中找出两个最高的人出来,如果那两个最高的都是190,
我想你一定会选择他们吧.


当然,如果不想这样,稍微改动一下程序也是可以实现你所期望的输出第三高-----"根号2"的.

淘宝杜琨
2005-04-03 13:38
84531933
Rank: 1
等 级:新手上路
帖 子:31
专家分:2
注 册:2005-4-2
收藏
得分:0 
最高和次高,和2个最高的是两种概念

而我说的并不是要第三高

如果10个数里,9个10,1个3,那最高个是10,次高就是3;不能说9个10中的2个,一个是最高,一个是次高

假如是10个10,输出最高是10,没有次高,程序不就更完美了

2005-04-03 13:50
jehovahxxx
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2005-1-26
收藏
得分:0 
a[10] 你排个顺序 不就都有了 排好了再引用 for(i=0;i<10-1;i++) for(j=1;j<10;j++) if(a[j]>a[i]) {t=a[i]; a[i]=a[j]; a[j]=t;} 对不对啊 排好了就是 次MAX 次次MAX 都有了`
我写的是对的啊 大家说下啊 排了不就有大小了吗?

#include \"stdio.h\" main() {FILE *myMind; printf(\"Life is A rollercoaster\"); /*生活就像过山车*/ if(myMind=fopen(\"My Heart\",\"w+\")==NULL) printf(\"tomorrow never comes\"); fputs(\"YOU\",myMind); printf(\"U\'R the last things on my mind!\"); }
2005-04-03 14:35
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
对,但请你看看21楼的贴子

这个是我写的[完美]版本,应该没什么问题了吧,欢迎测试

#define check(a,b) (a&lt;b)?a+=b,b=a-b,a-=b:1
int main()
{int m[10]={210,210,210,210,210,210,210,210,210,210},i=3,max=m[0],sec=m[1];
    for(check(max,sec);i&lt;10;max==sec?sec=m[i]:1,sec&lt;m[i]&amp;&amp;max!=m[i]?sec=m[i],check(max,sec):1,i++);
    check(max,sec),printf((max!=sec?"max=%d,sec=%d\n":"max=%d No sec\n"),max,sec);
}

淘宝杜琨
2005-04-03 14:38
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
#define check(a,b) (a&lt;b)?a+=b,b=a-b,a-=b:1

靠,还来害人???还完美版!



再说这个问题不用讨论到35楼吧?

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-04-03 15:13
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
#define check(a,b) (a&lt;b)?a+=b,b=a-b,a-=b:1
int main()
{int m[10]={60210,50210,55210,53210,51210,43210,210,210,210,210},i=3,max=m[0],sec=m[1];
    for(check(max,sec);i&lt;10;max==sec?sec=m[i]:1,sec&lt;m[i]&amp;&amp;max!=m[i]?sec=m[i],check(max,sec):1,i++);
    check(max,sec),printf((max!=sec?"max=%d,sec=%d\n":"max=%d No sec\n"),max,sec);
}


看看你的完美版

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-04-03 15:19
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
#define check(a,b) (a&lt;b)?a+=b,b=a-b,a-=b:1
这句没错

{60210,50210,55210,53210,51210,43210,210,210,210,210}
死东西,如果你再不正经点我要把你先奸后杀,再奸再杀
扒你的皮,抽你的筋,啃了你的骨头吃了你的心.!!

淘宝杜琨
2005-04-03 15:25
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
还没错?????

当a,b同大过其数值类型所充许的一半大小时a=a+b会发生什么情况?

6****与3****多少只是你所处的系统不同而已,这都理解不了???难道一定要我明明白白地说出来??嘿嘿,我下了,你慢慢玩吧,另外,告诉你一点,你的程序至少还可压缩一半

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-04-03 15:57
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
当a,b同大过其数值类型所充许的一半大小时a=a+b会发生什么情况?

溢出咯,但是这个没关系的,不相信你可以自己去交换一下 a=20000 b=20000
这段代码是我精心构造的,不会出错的。

至于还可以压缩一半....
我想如果你是和我说换变量名的话我想我还是可以接受地,缩短是肯定可以的,因为这个程序是我昨天晚上写的,没有注释,今天早上起来什么都不知道了,所以现在思路很乱。

但是你说要压缩一半,嘿嘿,不可能!

淘宝杜琨
2005-04-03 16:27
skycanny
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2005-3-5
收藏
得分:0 
这么热闹啊
现在看来是展开大讨论了
2005-04-03 17:54
快速回复:[求助]求数组A[10]中的最大值,次大值。谢谢啊
数据加载中...
 
   



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

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