把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);
}