标题:请各位帮一下忙:给定n个数,在最坏情况下用╔ 3n/2-2 ╕次比较找出这n个数 ...
只看楼主
朦胧美
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-10-9
 问题点数:0 回复次数:1 
请各位帮一下忙:给定n个数,在最坏情况下用╔ 3n/2-2 ╕次比较找出这n个数中元素的最大值和最小值。
#include<stdio.h>
void maxmin(int a[],int low,int high,int *max,int *min)
{
 int mid,hmax,hmin,gmax,gmin;
 if(low==high)
 {*max=a[low];
 *min=a[low];
 return;
 }
 if(low==high-1)
  if(a[low]>a[high])
  {*max=a[low];
  *min=a[high];
  return;
  }
  else
  {*max=a[high];
  *min=a[low];
  return;
  }
 else
 {
  mid=(low+high)/2;
  maxmin(low,mid,&gmax,&gmin);
  maxmin(mid+1,high,&hmax,&hmin);
  *max=gmax>hmax? gmax:hmax;
  *min=gmin<hmin? gmin:hmin;
 }
}
int main()
{
    int max,min,k,a[200];
    int m;
    while(scanf("%d",&k)&&k)
    {
        for(m=0;m<k;m++)
            scanf("%d",&a[m]);
        maxmin(a,0,k-1,&max,&min);
        printf("%d %d\n",max,min);
   
    }
   
}
要求:包含多组测试数据。每组测试数据的第一个元素是整数的个数n,接下来是n个整数。0表示结束。 n<=200

搜索更多相关主题的帖子: include return 最大值 元素 
2011-10-20 11:19
Sunxitong
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-10-29
得分:0 
maxmin(a,low,mid,&gmax,&gmin);
maxmin(a,mid+1,high,&hmax,&hmin);
就这里少个a,void maxmin(int a[],int low,int high,int *max,int *min) 就这样递归调用 , 我刚才把这里加上a就AC了
2012-10-29 20:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-352993-1-1.html




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

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