当前位置: 代码迷 >> C语言 >> [讨论]出题大家算
  详细解决方案

[讨论]出题大家算

热度:147   发布时间:2006-03-30 20:05:00.0
[讨论]出题大家算

一个不错的题目
我试着编了一下,编译成功了 ;但没结果 死循环。
看大家的了
这是我的程序:
#include <stdio.h>
#include <math.h>

main(void)
{
//define constant
double s_rate=0.001; //strain rate 3100,0.001,8000, 0.1
double tempt,yita; //temperature
double rou=10.22;
double t;
double detaT ;
double j,k;
printf("\n");
double T=298 ;
for (j=0;j<7;j++)
{ tempt=298+100*j;
printf("%d\n",tempt);
double rerong=0.255; // dependent with temperature
for (k=0;k<99;k++) //strain
{ y=k*0.01;
// if (k<0.2) yita=0.9;
// else
yita=1.0;
double A,B;
B=s_rate/14500000;
A=log(B);


t=720*pow(k,0.25)+2450*pow((1-pow((-8.62*0.00001*T*A),0.5)),1.5);
detaT=yita*t*k/rou/rerong;
T=tempt+detaT;

printf("%d,%f\n",k,t);
}
}
}


[此贴子已经被作者于2006-4-10 21:00:37编辑过]

搜索更多相关的解决方案: 出题  

----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <math.h>

main(void)
{
//define constant
double s_rate=0.001; //strain rate 3100,0.001,8000, 0.1
double tempt,yita; //temperature
double rou=10.22;
double t;
double detaT ;
double j,k;
printf("\n");
double T=298 ;
for (j=0;j<7;j++)
{ tempt=298+100*j;
printf("%d\n",tempt);
double rerong=0.255; // dependent with temperature
for (k=0.001;k<1;k+0.001) /*哥们这里好像有点错*/
{
// if (k<0.2) yita=0.9;
// else
yita=1.0;
double A,B;
B=s_rate/14500000;
A=log(B);


t=720*pow(k,0.25)+2450*pow((1-pow((-8.62*0.00001*T*A),0.5)),1.5);
detaT=yita*t*k/rou/rerong;
T=tempt+detaT;

printf("%d,%f\n",k,t);
}
}
}

其它地方没有细看。


----------------解决方案--------------------------------------------------------
没人感兴趣么
----------------解决方案--------------------------------------------------------
我认为2楼说的有道理
k++执行完了k的值会自动增1
但k+0.001执行完了k值不会变
----------------解决方案--------------------------------------------------------

谢谢大家我搞定了 呵呵
这是我最终的程序:
#include <stdio.h>
#include <math.h>

main(void)
{
//define constant
double s_rate=0.1; //strain rate 3100,0.001,8000, 0.1
double tempt,yita; //temperature
double rou=10.22;
double t;
double y;
double detaT ;
int j,k=1;
printf("\n");
double T;
char *s=("this tempterature"); /*定义字符串指针并初始化*/
FILE *fp; /*定义文件指针*/
fp=fopen("test.dat", "w"); /*建立一个文字文件只写*/
fputs("Your score of TOEFLis", fp);/*向所建文件写入一串字符*/
fputc(':', fp); /*向所建文件写冒号:*/

for (j=0;j<7;j++)
{ tempt=298+100*j;
T=tempt;
printf("%f\n",tempt);
double rerong=0.255; // dependent with temperature


for (k=0;k<200;k++) //strain
{ y=k*0.005;
if (y<0.2) yita=0.9;
else
yita=1.0;
long double A,B;
B=s_rate/14500000;
A=log(B);
t=720*pow(double(y),0.25)+2450*pow((1-pow((-8.62*0.00001*T*A),0.5)),1.5);

detaT=yita*t*0.01/rou/rerong;
T=tempt+detaT;

// printf("%f,%f\n",y,t);

fprintf(fp,"%f,%f\n",y,t); /*向所建文件写一整型数*/

}
fprintf(fp, "%s", s); /*向所建文件写一字符串*/
fprintf(fp, "%f", tempt);
}
fclose(fp); /*关闭文件*/
}


但我还有一个问题,在tempt值较大,strain_rate值很小时,会出现溢出。
能不能指点一下

[此贴子已经被作者于2006-4-11 17:08:07编辑过]


----------------解决方案--------------------------------------------------------

没人顶我自己顶


----------------解决方案--------------------------------------------------------
  相关解决方案