| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 801 人关注过本帖
标题:[求助]数组赋值问题
只看楼主 加入收藏
8o8w
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-8-6
收藏
 问题点数:0 回复次数:9 
[求助]数组赋值问题

定义一个数组,能不能用循环语句一个个计算赋值,再输出呀,我编的没错误,可不能正常运行呀。
请问一下高手怎么回事呀???
#include<stdio.h>
#include<math.h>
float lre(float u,float d)
{
float re,v, float tf[3][10000];
int i,j;
v=(8.123*(tf[i][j]-273.15)*(tf[i][j]-273.15)*1e-5+9.1945*0.01*(tf[i][j]-273.15)+13.198)*1e-6;
re=u*d/v;
return (re);
}
float hr(float d,float k,float u)
{
float r=0.0276/d;
float h1,h,h2,x,a,float tf[3][10000];
x=lre(u,d);
a=d/k;
if(x>2300)
{
h1=0.226421*r*pow(a,0.318257)*pow(x,0.631779);
h2=0.357498*r*pow(a,0.311957)*pow(x,0.600192);
h=(h1+h2)/2;
return(h);
}
else
h1=0.866633*r*pow(a,0.46642)*pow(x,0.453158);
h2=1.494713*r*pow(a,0.85346)*pow(x,0.405349);
h=(h1+h2)/2;
return(h);
}
#define USER_INPUT 0 //如果它为1的话,就用键盘输入,如果为0的话,就直接用默认值。

void main()
{
int i,j;
float u,ts,n,l,p,r,c;
float t[3][10000],tf[3][10000];
float d,h,k,e,y,s,a,v,qv,qv1;
float p1=1.17,cp1=1.005,p2=8070,cp2=436;

#if (USER_INPUT)
printf("input u,d,k,ts,n,l,e,ui,iu:\n");
scanf("%f,%f,%f,%f,%f,%f,%f,%f",&u,&d,&k,&ts,&n,&l,&);
#else
u=6,d=0.009,k=0.08,ts=50,n=20,l=3,e=0.001,p=60;
#endif

s=8*n*(l*k+l*e);
a=4*n*d*k;
v=4*n*l*k*e;
qv=p*ts;
tf[0][0]=313;
t[0][0]=313;
for(j=0;j<ts;j++)
{
c=p2*cp2*v;
for(i=0;i<3;i++)
h=hr(u,d,k);
r=h*a;
qv1=qv*v/4+p1*cp1*(tf[i][j]-t[i][j-1]+qv*v/(4*h*s))*exp(-ts/r/c);
tf[i][j]=(u*t[i-1][j]+qv1/l/d/cp1+u*t[i][j-1])/(u+p1*l);
t[i][j]=tf[i][j]+qv*v/(4*h*s)-(tf-t+qv*v/(4*h*s))*exp(-1/r/c);
}
printf("tf=%f",tf[i][j]);
printf(" t=%f",t[i][j]);
}

搜索更多相关主题的帖子: 赋值 float include lre 定义 
2006-08-27 20:07
何苦学C
Rank: 2
等 级:论坛游民
帖 子:139
专家分:10
注 册:2004-5-9
收藏
得分:0 

#include<stdio.h>
#include<math.h>
float lre(float u,float d)
{
float re,v;
float tf[3][10000];
int i,j;
v=(8.123*(tf[i][j]-273.15)*(tf[i][j]-273.15)*1e-5+9.1945*0.01*(tf[i][j]-273.15)+13.198)*1e-6;
re=u*d/v;
return (re);
}
float hr(float d,float k,float u)
{
float r=0.0276/d;
float h1,h,h2,x,a;
float tf[3][10000];
x=lre(u,d);
a=d/k;
if(x>2300)
{
h1=0.226421*r*pow(a,0.318257)*pow(x,0.631779);
h2=0.357498*r*pow(a,0.311957)*pow(x,0.600192);
h=(h1+h2)/2;
return(h);
}
else
h1=0.866633*r*pow(a,0.46642)*pow(x,0.453158);
h2=1.494713*r*pow(a,0.85346)*pow(x,0.405349);
h=(h1+h2)/2;
return(h);
}
#define USER_INPUT 0 //如果它为1的话,就用键盘输入,如果为0的话,就直接用默认值。

int main()
{
int i,j;
float u,ts,n,l,p,r,c;
float t[3][10000],tf[3][10000];
float d,h,k,e,y,s,a,v,qv,qv1;
float p1=1.17,cp1=1.005,p2=8070,cp2=436;

#if (USER_INPUT)
printf("input u,d,k,ts,n,l,e,ui,iu:\n");
scanf("%f,%f,%f,%f,%f,%f,%f,%f",&u,&d,&k,&ts,&n,&l,&);
#else
u=6,d=0.009,k=0.08,ts=50,n=20,l=3,e=0.001,p=60;
#endif

s=8*n*(l*k+l*e);
a=4*n*d*k;
v=4*n*l*k*e;
qv=p*ts;
tf[0][0]=313;
t[0][0]=313;
for(j=0;j<ts;j++)
{
c=p2*cp2*v;
for(i=0;i<3;i++)
h=hr(u,d,k);
r=h*a;
qv1=qv*v/4+p1*cp1*(tf[i][j]-t[i][j-1]+qv*v/(4*h*s))*exp(-ts/r/c);
tf[i][j]=(u*t[i-1][j]+qv1/l/d/cp1+u*t[i][j-1])/(u+p1*l);
t[i][j]=tf[i][j]+qv*v/(4*h*s)-(tf-t+qv*v/(4*h*s))*exp(-1/r/c);
}
printf("tf=%f",tf[i][j]);
printf(" t=%f",t[i][j]);


清新脱俗的唯美
2006-08-27 20:21
何苦学C
Rank: 2
等 级:论坛游民
帖 子:139
专家分:10
注 册:2004-5-9
收藏
得分:0 
float h1,h,h2,x,a,float tf[3][10000];
float re,v, float tf[3][10000];
这两个都过不得

清新脱俗的唯美
2006-08-27 20:22
8o8w
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-8-6
收藏
得分:0 
是呀,要怎么改才行呀???
2006-08-27 21:00
8o8w
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-8-6
收藏
得分:0 

高手帮帮忙呀,我试了一下用指针,可不太会,还是不行呀??

2006-08-28 16:41
zhuyafei
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-7-31
收藏
得分:0 
以下是引用何苦学C在2006-8-27 20:22:19的发言:
float h1,h,h2,x,a,float tf[3][10000];
float re,v, float tf[3][10000];
这两个都过不得

前面定义了类型后面就不用再写了,改为;
float h1,h,h2,x,a, tf[3][10000];
float re,v, tf[3][10000];
2006-08-29 00:22
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 
你的tf占用了120k左右,大于64K
数组太大了,
要改用其他模式

2006-08-29 09:28
heamer_c
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-7-18
收藏
得分:0 
i,j应该不用定义两次吧!

我就是程序,程序就是我,我还能退出程序吗?!
2006-08-29 10:30
8o8w
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-8-6
收藏
得分:0 

程序修改中,用了指针,可数据还是传不过去怎么办呀,老传一个。
#include<iostream.h>
#include<stdio.h>
#include<math.h>
float lre(float u,float d,float *tf, int i,int j)
{
float re,v;

v=(8.123*(*tf-273.15)*(*tf-273.15)*1e-5+9.1945*0.01*(*tf-273.15)+13.198)*1e-6;
re=u*d/v;
return (re);
}
float hr(float u,float d,float k,int i,int j,float *tf)

{ float r=0.0276/d;
float h1,h,h2,x,a;
x=lre(u,d,tf,i,j);
a=d/k;
if(x>2300)
{
h1=0.226421*r*pow(a,0.318257)*pow(x,0.631779);
h2=0.357498*r*pow(a,0.311957)*pow(x,0.600192);
h=(h1+h2)/2;
return(h);
}
else
h1=0.866633*r*pow(a,0.46642)*pow(x,0.453158);
h2=1.494713*r*pow(a,0.85346)*pow(x,0.405349);
h=(h1+h2)/2;
return(h);
}
#define USER_INPUT 0 //如果它为1的话,就用键盘输入,如果为0的话,就直接用默认值。

void main()
{
int i,j;
float u,ts,n,l,p,r,c;
float t[4][100],tf[4][100];
float d,h,k,e,y,s,a,v,qv,qv1;
float p1=1.17,cp1=1.005,p2=8070,cp2=436;


#if (USER_INPUT)
printf("input u,d,k,ts,n,l,e,ui,iu:\n");
scanf("%f,%f,%f,%f,%f,%f,%f,%f",&u,&d,&k,&ts,&n,&l,&);
#else
u=6,d=0.009,k=0.08,ts=50,n=20,l=3,e=0.001,p=60;
#endif

s=8*n*(l*k+l*e);
a=4*n*d*k;
v=4*n*l*k*e;
qv=p*ts;
tf[0][0]=313;
t[0][0]=313;

for(j=0;j<=ts;j++)
{
c=p2*cp2*v;
for(i=0;i<=3;i++)
h=hr(u,d,k,i,j,*tf);
r=h*a;
t[i][j]=tf[i][j]+qv*v/(4*h*s)-(tf[i][j]-t[i][j-1]+qv*v/(4*h*s))*exp(-1/r/c);
qv1=qv*v/4+p1*cp1*(tf[i][j]-t[i][j-1]+qv*v/(4*h*s))*exp(-ts/r/c);
tf[i][j]=(u*t[i-1][j]+qv1/l/d/cp1+u*t[i][j-1])/(u+p1*l);
printf("tf=%f",tf[i][j]);
printf(" t=%f\n",t[i][j]);
}
}

2006-08-29 10:32
8o8w
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-8-6
收藏
得分:0 
要使初始值,tf[i][j]-t[i][j-1]=0怎么办呀???
因为tf[0][0]=313,而t[0][0]=313,t[0][0-1]怎么办,它默认的为0.
2006-08-29 21:51
快速回复:[求助]数组赋值问题
数据加载中...
 
   



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

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