| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9480 人关注过本帖
标题:找出10个数中最大的两个数,怎么编啊
只看楼主 加入收藏
jaycui2008
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-12-11
收藏
得分:0 
#include<stdio.h>

//求数组中的次最大数
int GetTheSecondMax(int *array,int len)
{
    int max=0;
    int secMax;
    
    for(int i=0;i<len;i++)
    {
        if(array[i]>max)
        {
            max=array[i];
        }
    }

    for(i=0;i<len;i++)
    {
        if(array[i]>secMax&&array[i]!=max)
        {
            secMax=array[i];
        }
    }
    
    return secMax;


}


void main()
{
    const int N=10;

    int array[N]={3,1,5,7,2,9,8,6,4,10};

    int secondMax;

    secondMax=GetTheSecondMax(array,N);

    printf("second max=%d\n",secondMax);

    
}
2008-12-11 21:05
xuqing520
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-8-31
收藏
得分:0 
我比较认同 zrf625278699 的算法!
2008-12-11 21:28
choco1024
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:183
专家分:140
注 册:2008-8-31
收藏
得分:0 
楼上的看清楼主问的再说啊,楼主说是输出两个最大的,你那代码结果只输出了一个诶。
2008-12-11 23:40
choco1024
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:183
专家分:140
注 册:2008-8-31
收藏
得分:0 
Sorry,楼上的,由于没刷新视图,我看错了,不好意思了。
2008-12-11 23:41
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 
去看看,哈夫曼树吧,在循环里,多加一二个if,就行了
2008-12-12 00:02
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
程序代码:
#include <stdio.h>
#include<stdlib.h>
#define N 100
int wap(const void *a,const void *b)
{
    return (*(int *)b-*(int *)a);
}
int main(void)
{
    int num[N];
    int n=0,i;
    printf("input nums:\n");
    for(;(scanf("%d",&num[n]))!=EOF;++n);
    qsort(num,n,sizeof(num[0]),wap);
    printf("%d %d\n",num[0],num[1]);
    return 0;
}




2008-12-12 02:05
dsx598051087
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-11-25
收藏
得分:0 
好好学习啦
2008-12-12 08:48
ak5331134
Rank: 1
来 自:广东
等 级:新手上路
帖 子:88
专家分:0
注 册:2008-12-3
收藏
得分:0 
同上吧。
2008-12-13 09:45
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
看下函数原型
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int compare( const void *arg1, const void *arg2 );

void main( int argc, char **argv )
{
   int i;
   /* Eliminate argv[0] from sort: */
   argv++;
   argc--;

   /* Sort remaining args using Quicksort algorithm: */
   qsort( (void *)argv, (size_t)argc, sizeof( char * ), compare );

   /* Output sorted list: */
   for( i = 0; i < argc; ++i )
      printf( "%s ", argv[i] );
   printf( "\n" );
}

int compare( const void *arg1, const void *arg2 )
{
   /* Compare all of both strings: */
   return _stricmp( * ( char** ) arg1, * ( char** ) arg2 );
}
收到的鲜花
  • missiyou2008-12-13 21:10 送鲜花  49朵   附言:好文章

学习需要安静。。海盗要重新来过。。
2008-12-13 09:51
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 
以下是引用missiyou在2008-12-12 00:02的发言:

去看看,哈夫曼树吧,在循环里,多加一二个if,就行了


早就提示了,没人去想,只好自己去想去写了,哎。。。
#include <stdio.h>
#include <stdlib.h>
void max(int *a)
{
  int n,m,i,j;
  n=m=0;
for(i=1;i<10;i++)
{
  if(m<a[i])
 { n=m;m=a[i];}
  else if(a[i]>n)
  n=a[i];
 
}
printf("%d %d",m,n);
}
int main(int argc, char *argv[])
{
  int m[10]={2,45,52,2,78,65,33,2,4,5};
  max(m);
  system("PAUSE");    
  return 0;
}
我自己都不得不为自己顶一下了,真是的,

[[it] 本帖最后由 missiyou 于 2008-12-13 20:56 编辑 [/it]]
2008-12-13 20:46
快速回复:找出10个数中最大的两个数,怎么编啊
数据加载中...
 
   



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

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