| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 688 人关注过本帖
标题:求助!!!一维数组
只看楼主 加入收藏
rtfbvg
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2015-4-10
结帖率:50%
收藏
 问题点数:0 回复次数:8 
求助!!!一维数组
一个一维数组 array[20],包含任意20个自然数,求max(min(array[0],array[1],array[2]....array[i-1]), min(array[i+1],array[i+2]....array[20]))的最大值,其中i的值从1到19。
搜索更多相关主题的帖子: 最大值 
2015-05-31 21:53
取名字
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:236
专家分:924
注 册:2015-4-27
收藏
得分:0 
“max(min(array[0],array[1],array[2]....array[i-1]), min(array[i+1],array[i+2]....array[20]))”
不清楚什么意思?
2015-05-31 22:56
zheng2015
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-5-31
收藏
得分:0 
回复 2楼 取名字
应该是求前i个元素的最小值,再求后20-i个元素的最小值,最后求这两个最小值的最大值。
2015-05-31 23:17
ma815841356
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-5-3
收藏
得分:0 
说详细一点吧
2015-05-31 23:37
取名字
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:236
专家分:924
注 册:2015-4-27
收藏
得分:0 
重点就是求2个最小值,可以设2个变量分别存储这2个最小值,如min1,min2。先让min1=array[0],min2=array[i+1],然后循环比较min1与array[1]—array[i-1],min1存储这个范围内的最小值,同理求出min2,然后输出min1与min2中的最大值。
注意,array[20],其下标值最大为19,array[20]是错误的。
2015-06-01 00:04
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
是不是这个意思:
程序代码:
#include<stdio.h>
void show_arr(double ar[],int n);
int arr_max(double ar[],int n);

int main(void)
{
    double max;
    double array[]={1,3,5,7,9,11,13,15,17,19,2,20,6,8,10,12,14,16,18,4};
   

    printf("这个数组是:");
    show_arr(array,20);
    max=arr_max(array,20);
    printf("最大的元素是:%g\n",max);
   

    return 0;

 }




 void show_arr(double ar[], int n)

 {
     int i;
    

     for(i=0;i<n;i++)
     {
         printf("%g ",ar[i]);
    }
    printf("\n");

 }



 int arr_max(double ar[], int n)

 {
     int i;
     double max=ar[0];
    

     for(i=1;i<n;i++)
     {
         if(max<ar[i])
         {
             max=ar[i];
         }
    }

 }

2015-06-01 07:34
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
程序代码:
#include <stdio.h>

int main()
{
    int arr[]={1,3,5,7,9,11,13,15,17,19,2,20,6,8,10,12,14,16,18,4};
    int n=19;
    int pos=arr[0];
    int rev=arr[n];
    int max=0;
    int i;
    for(i=0;i<n;i++) 
    {
        if(arr[i]<pos) pos=arr[i];
    }
    printf("从0--18序列中最小值是:%d\n",pos);
    for(i=n;i>0;i--) 
    {
        if(arr[i]<rev) rev=arr[i];
    }
    printf("从19--1序列中最小值是:%d\n",rev);
    if(rev>pos) max=rev;else max=pos;
    printf("这两组序列最小值中较大的是:%d\n",max);
    return 0;
}
/*
   运行效果:
   从0--18序列中最小值是:1
   从19--1序列中最小值是:2
   这两组序列最小值中较大的是:2  
*/

DO IT YOURSELF !
2015-06-02 09:21
lowrie
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:81
专家分:138
注 册:2015-3-12
收藏
得分:0 
楼主没有array[20]这个数吧?
2015-06-02 17:34
lowrie
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:81
专家分:138
注 册:2015-3-12
收藏
得分:0 
#include<stdio.h>
#include <stdlib.h>
int main()
{
  int a[20],i;
  
  for(i=0;i<20;i++){
  a[i]=i+1;
  }
  int aa=100,bb=100,cc=0;
  for(i=1;i<19;i++){
      int j,k;
      for(j=0;j<i;j++){
          if(aa>a[j]){
          aa=a[j];
          }
      }
      for(k=i+1;k<20;k++){
          if(bb>a[k]){
          bb=k;
          }  
      }   
     int u=aa;
     if(u<bb){
     u=bb;
     }
//      printf("cc1==  %d\n",cc);
     if(cc<u){
     cc=u;
     }
//       printf("aa==  %d bb==   %d\n",aa,bb);
     aa=100,bb=100;
  }
  printf("cc==  %d\n",cc);
system("pause");
return 0;
}
这是我的实现方法
2015-06-04 09:01
快速回复:求助!!!一维数组
数据加载中...
 
   



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

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