标题:求助:求极大值问题
只看楼主
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
得分:0 
原帖由 [bold][underline]dumpling131[/underline][/bold] 于 2007-12-25 18:41 发表 [url=http://bbs.][/url]
我是想求极大值 不是最大值。如果你有好的代码,能不能给我?十分感谢。



区别是??????????????

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-12-26 18:21
symos
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-9-15
得分:0 
学历太低,实在不知道最大值和极大值的区别.

2007-12-26 19:04
dumpling131
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-11-17
得分:0 
极大值是指,在一个小邻域里的最大值, 这么一组数据1,2,5,4,3,6,1,5,8,3,1,11,2,3,5,22,33,1,2,3,2,1,6,5,9,1,5,2,极大值有很多个,5,6,8,11,33,9而最大值只有一个33。因为我不知道这些极大值在什么区域里,所以不能用求最大值的方法求极大值。
2007-12-26 20:03
龙=虾
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-12-26
得分:0 
常识性错误
你的 b[ ]={0}
c[ ]={0}
确定的数组长度只有1个元素. 所以运行会出现越界,而C是不检查是否越界的.
所以出现莫名的错误. 算法基本没问题, 取的邻域总共是5个数, 就是相邻5个数的最大值,另检查下数据总共是不是30个,少了也会出现小问题
2007-12-26 21:28
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
把k++的位置换一下啊.因为k的位置不一样得到极值范围不一样啊
#include <stdio.h>
int find_max(int *a,int *b)
{
    int i,n=0;
    int M;
    int k;
    int c[30]={0};
    M=30;//sizeof(a);
for (i=2;i<M-2;i++)
{
   k=1;
   printf("%d,",a[i]);
   while (a[i-k]<a[i] && a[i+k]<a[i])
   {   k++;
       if(k==3)
       {
       b[n]=a[i];
       c[n]=i;
       n++;
       }
      }
}
for(i=0;i<n;i++)
{
    printf("第%d是附近六项当中的最大值;\n",c[i]);
    printf("a[%d]得值是:%d\n",c[i],b[i]);
}
return (n);
   
}

void main()
{
    int n;  
    int a[30]={1,2,5,4,3,6,1,5,8,3,1,11,2,3,5,22,33,1,2,3,2,1,6,5,9,1,5,2};
    int b[30]={0};
    n=find_max(a,b);
   }
2007-12-26 21:53
dumpling131
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-11-17
得分:0 
终于解决了,谢谢16楼的。不过还有一个问题,就是不知道数组b中会有多少个数据,但是又不想 占用太多的内存空间,有什么办法么?
2007-12-26 21:56
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
c好象不支持数组动态定义啊,vb好象可以动态定义啊.要是不嫌麻烦可以动态开辟内存空间*malloc( size_t size );
2007-12-26 22:18
龙=虾
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-12-26
得分:0 
如楼上, 只能用动态内存分配函数.
少量数据的情况下,其实用固定数组问题不大,当数据量巨大的情况下,用链表吧, 这样空间浪费少.
.
2007-12-26 22:36
dumpling131
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-11-17
得分:0 
谢谢各位了
2007-12-27 11:45



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




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

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