请高手指点啊 c语言程序编译没有错误 但是没有结果 运行只要光标在闪

2024-12-23 00:45:00
推荐回答(3个)
回答1:

void main(int argc, char* argv[])
{
//NumberThree numTree = new NumberThree();
double x0, x1, P, y0, y1, K0, K1, sum0, sum1, kesi;

for (int i = 0; i < 12; i++)
{
x0 = X[i];
x1 = 1 - x0;
P = 1000000 + 100000 * i;
y0 = 0.5;
y1 = 0.5; // 假设的P和气相组分初值
do {
PHIL(P, x0);
PHIV(P, y0, y1);
K0 = phil[0] / phiv[0];
K1 = phil[1] / phiv[1];
sum0 = K0 * x0 + K1 * x1;
y0 = K0 * x0 / sum0;
y1 = K1 * x1 / sum0;
PHIV(P, y0, y1);
K0 = phil[0] / phiv[0];
K1 = phil[1] / phiv[1];
sum1 = K0 * x0 + K1 * x1;
while (fabs(sum1 - sum0) > 0.001) // 判断y0,y1之和是否发生变化
{
sum0 = sum1;
y1 = K1 * x1 / sum0;
PHIV(P, y0, y1);
K0 = phil[0] / phiv[0];
K1 = phil[1] / phiv[1];
sum1 = K0 * x0 + K1 * x1;

}
y0 = K0 * x0;
y1 = K1 * x1;
kesi = 1 - y0 - y1;
P = P + 100; // 调整P
}
while (fabs(kesi) > 0.0001); // 判断y0,y1之和是否为1
}
printf("压力:");
cout< printf("R32液相组分:");
cout< printf("R134a液相组分:");
cout< printf("R32气相组分:");
cout< printf("R134a气相组分:");
cout<
}

回答2:

其实我不懂这个气象液相是干什么的。。。所以我只能 大概的看一下纯粹的程序,额。。。

首先,main函数里
for (int i = 0; i < 12; i++)
{
x0 = X[i];
这里当i=11时,要注意到X[11]是没有定义的,可能会有问题
还有就是你那几个do-while语句,我不知道是不是有什么切合你题目的定理,但是单纯从数据和你的表达式来看,我觉得while括号里的条件不一定是收敛的,或者说是一定能使精度差很小的,这里出现问题的可能性比较大。

回答3:

代码写了一半,别人能指出你的错误吗?