0

我有一个程序,目前可以计算出分子在特定速度和温度下的概率。它们需要打印到输出文件中,因为其中一个变量每次增加 5。
例如:

for
    (tempK=173;tempK<1173;tempK+=5)
        {
        power=(mass/(2*pi*k*tempK));
        prob = ((4*pi)*pow(power,threeovertwo))*(exp((-mass*(pow(speed,two))/(2*k*tempK))));

        fprintf (fp,"Molecular Name:%s Molecular Mass:%lg\n Probability: %lg Temperature:%lg Speed:%lg\n",name,mass,prob,tempK,speed);

这在一定程度上有效,但唯一的问题是 Molecular Name: 和 Molecular Mass: 在每一行之间重复,给出如下输出文件:

Molecular Name:Hydrogen Molecular Mass:2
 Probability: 0 Temperature:1158 Speed:50
Molecular Name:Hydrogen Molecular Mass:2
 Probability: 0 Temperature:1163 Speed:50
Molecular Name:Hydrogen Molecular Mass:2
 Probability: 0 Temperature:1168 Speed:50

这是不可取的,有谁知道阻止这种情况发生的方法,可能是通过将所有变量(“温度”)等输入到数组中,然后打印数组。

4

1 回答 1

1

在循环外打印分子量和名称:

 fprintf (fp,"Molecular Name:%s Molecular Mass:%lg\n",name,mass);

 for(tempK=173;tempK<1173;tempK+=5)
 {
    power=(mass/(2*pi*k*tempK));
    prob = ((4*pi)*pow(power,threeovertwo))*(exp((-mass*(pow(speed,two))/(2*k*tempK))));

    fprintf (fp,"Probability: %lg Temperature:%lg Speed:%lg\n",prob,tempK,speed);
 }
于 2013-01-12T11:54:30.020 回答