当前位置: 代码迷 >> C语言 >> [求助]求数组A[10]中的最大值,次大值。谢谢啊
  详细解决方案

[求助]求数组A[10]中的最大值,次大值。谢谢啊

热度:185   发布时间:2005-04-02 22:45:00.0
这好像挺热闹!
----------------解决方案--------------------------------------------------------
#define N 10
#include <stdio.h>
main()
{
int i, max, sub_max;
int a[N];
printf("Please input 10 interges:\n");
for(i = 0; i < N; i++)
{
  scanf("%d", &a[i]);
}
max = a[0];
sub_max = a[0];
/*将a[0]赋值给max和sub_max,假如a[0]是最大的,那就判断不出来哪个是次大的*/
for(i =0; i < N; i++)
{
  if(a[i] > max)
  {
   sub_max = max;
   max = a[i];
  }
/*假如最次大的在最大的后面录入进来,就无法将次大的给sub_max,再加个if(a[i]>sub_max&&a[i]!=max) sub_max=a[i];  就好了*/
}
if(sub_max == max)
{
  printf("There is no sub_max\n");
  printf("max = %d\n", max);
}
else
  printf("max = %d, sub_max = %d\n", max, sub_max);
}
----------------解决方案--------------------------------------------------------

9楼的说的对, 改了一下 欢迎测试 #define N 5 #include <stdio.h> main() { int i, max, sub_max, average; int a[N]; printf("Please input %d interges:\n", N); for(i = 0; i < N; i++) { scanf("%d", &a[i]); } average = 0; for(i = 0; i < N; i++) average = average + a[i]; average = average / N; sub_max = max = average; for(i =0; i < N; i++) { if(a[i] > max) { max = a[i]; } }

for(i =0; i < N; i++) {

if( (a[i] >= sub_max) && (a[i] < max) ) sub_max = a[i]; } if(sub_max == max) { printf("There is no sub_max\n"); printf("max = %d\n", max); } else printf("max = %d, sub_max = %d\n", max, sub_max); }

[此贴子已经被作者于2005-4-2 23:24:51编辑过]


----------------解决方案--------------------------------------------------------
呵呵,其实我认为可以不用排序法来做.
因为用排序法白白浪费了80%的时间去作无用功,因为我们只关心其中那最大的那两个.

----------------解决方案--------------------------------------------------------
这个程序不是吹牛,你写给你老师去看他/她如果是新老师(研究生那种)肯定看不明白~~~

对了,楼主要注释不?


[此贴子已经被作者于2005-4-3 0:01:38编辑过]



----------------解决方案--------------------------------------------------------
不排序也应该要记他的次序吧,这样的话在循环的时候也要每次都判断他的次序吧?
----------------解决方案--------------------------------------------------------
判断什么的次序?
----------------解决方案--------------------------------------------------------
就是先要确定最大数的位置
----------------解决方案--------------------------------------------------------
不用

----------------解决方案--------------------------------------------------------
拍个序不就完了~  不至于讨论这么多吧~
----------------解决方案--------------------------------------------------------
  相关解决方案