| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
免费IT实战开发视频教程合集分享千里之行 始于足下
共有 211 人关注过本帖
标题:想问一下各位大神,这个代码为什么运行时我要输入第二个数组时会突然中止?
只看楼主 加入收藏
川费
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-9-12
结帖率:0
  已结贴   问题点数:20  回复次数:2   
想问一下各位大神,这个代码为什么运行时我要输入第二个数组时会突然中止?
#include<iostream>
using namespace std;
#include<cmath>
double jud(double Y[],int n,double T[],int j,float c,float d);
void main()         
{
int z;
float x;
double m,l;
float c,d;
double *T=new double[z];
double *Y=new double[z];
cout<<"请输入每列数据的个数"<<endl;
cin>>z;
cout<<"请输入精确度"<<endl;
cin>>x;
cout<<"请输入参数的取值范围"<<endl;
cin>>c;
cin>>d;
cout<<"请依次输入第一列数据的数值:";
for(int i=0;i<z;i++)
{
cin>>m;
T[i]=m;
}
cout<<"请依次输入第二列数据的数值:";
for(int j=0;j<z;j++)
{
cin>>l;
Y[j]=l;
}
float kd1=c+0.618*(d-c);
float kd2=d-0.618*(d-c);
while(fabs(kd1-kd2)>x)
{
if(jud(Y,z,T,z,kd1,kd2)<0)
{
c=kd2;
kd2=kd1;
d=d;
}
else if(jud(Y,z,T,z,kd1,kd2)>0)
{
d=kd1;
kd1=kd2;
c=c;
}
else if(jud(Y,z,T,z,kd1,kd2)==0)
{
c=kd2;
d=kd1;
}
}
cout<<"所求值为"<<(c+d)*0.5;
}
double jud(double Y[],int n,double T[],int j,float c,float d)
{
float kd1=c+0.618*(d-c);
float kd2=d-0.618*(d-c);
float sum1=0;
float sum2=0;
for(int i=0;i<=n;i++)
{
    sum1=pow(Y[i]-0.202*exp(-kd1*T[i]),2)+sum1;
}
for(int k=0;k<=j;k++)
{
    sum2=pow(Y[k]-0.202*exp(-kd2*T[k]),2)+sum2;
}
    return sum1-sum2;

}
2018-09-12 22:42
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:163
帖 子:6314
专家分:27603
注 册:2014-5-20
  得分:10 
试运行未见异常
附件: 您没有浏览附件的权限,请 登录注册
2018-09-13 07:52
rjsp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:267
帖 子:5911
专家分:33686
注 册:2011-1-18
  得分:10 
double *T=new double[z];
z竟然未先赋值
2018-09-13 08:51







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

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