求助:求极大值问题
请教各位高手:下面这段代码,想求出数组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);
}