C语言高手请进来!!急!!!谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/22 05:10:54
我有一个函数语句,修改了数次但还是输不出结果,请高手帮下忙,谢谢
#include <math.h>
#include<stdio.h>
void main()
{double T,pA,pB,y;
double x1=0.20,xA=0,p=106.7;
printf("Input T=");
scanf("%f",&T);
while(xA!=x1)
{pA=pow(10,(6.031-1211/(T+220.8)));
pB=pow(10,(6.083-1345/(T+219.5)));
xA=(p-pA)/(pA-pB);
T=T+0.01;}
y=pA*x1/p;
printf("T=%fpA=%fpB=%f\n",T,pA,pB);
printf("y=%f\n",y);
}

double型数据要用%lf来读取,而不是%f

//我用vs2008编的,你看看我加了二行代码,
//一行是sleep的,一行是打印你的循环条件的
//在我机器上你的程序跳不出循环,这个应该
//属于数学上的问题.你的条件跳不出来导致的.
#include <math.h>
#include<stdio.h>
#include <windows.h>
void main()
{
double T,pA,pB,y;
double x1=0.20,xA=0,p=106.7;
printf("Input T=");
scanf("%f",&T);
while(xA!=x1)
{
pA=pow(10,(6.031-1211/(T+220.8)));
pB=pow(10,(6.083-1345/(T+219.5)));
xA=(p-pA)/(pA-pB);
T=T+0.01;
printf("%lf,%lf\n",xA,x1);
Sleep(1000);
}
y=pA*x1/p;
printf("T=%fpA=%fpB=%f\n",T,pA,pB);
printf("y=%f\n",y);
}