![]() |
#2
叶纤2020-02-11 19:42
|
只有本站会员才能查看附件,请 登录
我写的程序如下,我试了一下,这样找出的数据是不对的。比如有的数据会找出这样的数(隔得太近了,肯定不是)
只有本站会员才能查看附件,请 登录
有的会找出这样的数只有本站会员才能查看附件,请 登录
所以,请问有没有办法找出这样的两个峰值。

#include <iostream>
int main(int argc, char** argv)
{
double a[3000];
double peak1,peak2,min=a[0];
int i,p1,p2,t1,t2,life;
FILE *fp=NULL;
FILE *fpp=NULL;
fp=fopen("G:\\uz\\new\\data100578.txt","r");
for(i=0;i<2500;i++)
{
fscanf(fp,"%lf",&a[i]);
}
for(i=1;i<2500;i++)
{
if(a[i]<min)
{
min=a[i];
peak1=a[i];
p1=i+1;
}
}//找第一个峰值
for(i=p1,min=a[p1];i<2500;i++)
{
if(a[i]<min)
{
min=a[i];
peak2=a[i];
p2=i+1;
}
}//找第二个峰值
printf("%lf %d\n",peak1,p1);
printf("%lf %d\n",peak2,p2);
fclose(fp);
return 0;
}
附几组数据
只有本站会员才能查看附件,请 登录
[此贴子已经被作者于2020-2-11 12:19编辑过]