| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 677 人关注过本帖
标题:想问一下各位大神,这个代码为什么运行时我要输入第二个数组时会突然中止?
只看楼主 加入收藏
川费
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;

}
搜索更多相关主题的帖子: 输入 double int float cout 
2018-09-12 22:42
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:10 
试运行未见异常
图片附件: 游客没有浏览图片的权限,请 登录注册
2018-09-13 07:52
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:10 
double *T=new double[z];
z竟然未先赋值
2018-09-13 08:51
快速回复:想问一下各位大神,这个代码为什么运行时我要输入第二个数组时会突然中 ...
数据加载中...
 
   



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

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