1
ローカルファイルから読み込まれた温度を表示する折れ線グラフを作成しようとしています。現在、グラフィカルな出力を除いて、すべてが意図したとおりに動作しています。C++線グラフ演技ファンキー
今、負の数の私のelse
ステートメントが正しく機能していません。さらに、いくつかの数字は表示されているように見えますが、いくつかの数字は表示されていませ
表示されている数字は「*」の右の数を示すされていない最後には、私は近くにいますが、コードを解読することはできません知っている...
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std
int main()
{
//Variable declarations
int numberOfStars;
int printStars;
int temp;
int count = 0;
string lineBreak = " | ";
ifstream tempData;
tempData.open("tempData.txt");
cout << "Temperatures for 24 hours: " << endl;
cout << " -30 0 30 60 90 120" << endl;
printStars = 0;
while (count < 24) {
tempData >> temp;
if (temp >= 0) {
numberOfStars = temp/3;
cout << setw(4) << temp << setw(10) << lineBreak;
while (printStars < numberOfStars){
cout << '*';
printStars++;
}
cout << endl << endl;
}
else {
numberOfStars = temp/3;
while (numberOfStars > printStars) {
cout << '*';
printStars++;
}
cout << setw(4) << temp << setw(10)<< lineBreak << endl << endl;
}
count++;
}
//Closing program statements
system("pause");
return 0;
現在、それが出力されています。
事前に助けを感謝。
'else'ブランチを実行するには、' temp'は負でなければならないことを理解していますか?それは 'if'ステートメントが言っているものですから。だから、 'temp'が負の場合、pop quiz:' temp/3'が正または負になると思いますか? 'printStars'は肯定的でなければならないことを知っていますので、' while(numberOfStars> printStars) 'の可能性はどのようなものでしょうか? –
ええ、私は、実行するelse文が負でなければならないことを理解しています。私は論理を理解していないと思う。これが私が理解していることです。 -21/3 = -7。したがって、(-7> 0)は '*'を出力します。それ以来、何も起こりません。しかしwhile文をwhile(numberOfStars