| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2959 人关注过本帖
标题:求助:求极大值问题
取消只看楼主 加入收藏
dumpling131
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-11-17
收藏
 问题点数:0 回复次数:7 
求助:求极大值问题
请教各位高手:下面这段代码,想求出数组a中的极大值,可是为什么只是显示前3个数据呢?就是说n的值最大为3,不明白为什么,望指教!
#include <stdio.h>
int find_max(float *a,float b[])
{int i,n=0;int M; int k; int c[]={0};
M=30;//sizeof(a);
for (i=2;i<M-2;i++)
{
   k=1;
   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("\n");
return (n);
    
}

void main()
{int n,i;  float 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}; float b[]={0};
n=find_max(a,b);
for(i=0;i<n;i++)
printf("%f\n",b[i]);
printf("%d",n);
}
搜索更多相关主题的帖子: int float void 
2007-12-25 12:27
dumpling131
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-11-17
收藏
得分:0 
这个n值 和k不相关啊?k值意思是和相邻k个值相比较。
2007-12-25 17:37
dumpling131
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-11-17
收藏
得分:0 
我是想求极大值 不是最大值。如果你有好的代码,能不能给我?十分感谢。
2007-12-25 18:41
dumpling131
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-11-17
收藏
得分:0 
谁能帮帮忙啊?我实在弄不出来了,万分感谢!
2007-12-26 11:08
dumpling131
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-11-17
收藏
得分:0 
不对啊,我希望输出结果是5,6,8,11,33,3,6,9,可是我的程序只显示前边三个数,不知道为什么。
2007-12-26 18: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
dumpling131
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-11-17
收藏
得分:0 
终于解决了,谢谢16楼的。不过还有一个问题,就是不知道数组b中会有多少个数据,但是又不想 占用太多的内存空间,有什么办法么?
2007-12-26 21:56
dumpling131
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-11-17
收藏
得分:0 
谢谢各位了
2007-12-27 11:45
快速回复:求助:求极大值问题
数据加载中...
 
   



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

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