0

現在、特定の速度と温度での分子の確率を計算するプログラムがあります。変数の 1 つが毎回 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 に答える