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;
目前,它輸出:
感謝您的幫助提前。
您是否明白'temp'必須是負數,才能採用'else'分支?因爲這就是'if'陳述所說的。所以,如果'temp'是負值,pop測驗:你認爲'temp/3'會是正值還是負值?你知道'printStars'必須是正面的,所以你認爲'while(numberOfStars> printStars)'是真的可能性是什麼? –
是的,我明白temp必須是否定的執行else語句。我想我只是不明白這個邏輯。這是我明白的事情。 -21/3 = -7。所以,(-7> 0)打印'*'。所以,因爲它沒有什麼發生。然而,當我將while語句切換到while(numberOfStars