65,211
社区成员
发帖
与我相关
我的任务
分享 extern double zsmbsj[41];
double max;
max=zsmbsj[0];
int zdzb=380;//选取目标曲线中最大值
for(int kks=0;kks<40;kks++)
{
if (max<zsmbsj[kks+1])
{
max=zsmbsj[kks+1];
zdzb=380+(kks+1)*10;
}
}
double sjbj=max*0.4;
double xss1,dss1,xss2,dss2;
int rr1,rr2;
for(int ww=0;ww<40;ww++)//取最大值的10%相邻两点,且是小于max时
{
if(zsmbsj[ww]<sjbj&&sjbj<zsmbsj[ww+1]&&ww+1<zdzb)
{
rr1=ww;
xss1=zsmbsj[ww];
dss1=zsmbsj[ww+1];
break;
}
}
for(int pps=0;pps<40;pps++)
{
if(zsmbsj[pps]>sjbj&&sjbj>zsmbsj[pps+1]&&pps>zdzb)
{
rr2=pps;
dss2=zsmbsj[pps];
xss2=zsmbsj[pps+1];
break;
}
}
double dyd,drd;
dyd=380.0+10.0*rr1+10.0*(sjbj-xss1)/(dss1-xss1);//求10%max所对应的坐标
drd=380.0+10.0*rr2+10.0*(dss2-sjbj)/(dss2-xss2);
extern double zsmbsj[41];
double max;max=zsmbsj[0];int zdzb=380;//选取目标曲线中最大值
//不知道你用的什么编译器,不过,你的 zsmbsj[41] 这个数组,应该要初始化一下才对
//如果不初始化的话,max=zsmbsj[0]; 这一句,max得到的就是一个随机的数字
//可以改成
extern double zsmbsj[41]={0}; //初始化 zsmbsj[41] 数组中的每个元素的值为“零”
double max;max=zsmbsj[0];int zdzb=380;//选取目标曲线中最大值