我有這個問題,我可以輸入"2 10 8",它會輸出"8",但我希望能夠輸入"2 -25.2 -38.4"。這會立即使for回圈崩潰并且程式顯示"-25.0"而不是"-25.2",從而有效地洗掉了小數位的數字。
有沒有人可以幫忙?
int main() {
int numVals;
static_cast<double>(numVals);
double minVal;
int i;
int iteration;
cin >> iteration;
for (i = 0; i < iteration; i) {
cin >> numVals;
numVals = numVals * 10; //program completely ignores this...
if (i == 0) {
minVal = numVals;
}
else if (numVals < minVal) {
minVal = numVals;
}
}
cout << fixed << setprecision(1) << minVal / 10 << endl;
return 0;
}
uj5u.com熱心網友回復:
您正在嘗試讀取型別-25.2的numVals變數int。它讀取-25到,但下次numVals嘗試讀取,這不是一個有效的整數。.2當您嘗試此操作時,輸入流變數cin進入失敗狀態,不再接受任何輸入。
numVals從型別更改int為double:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double numVals;
double minVal;
int i;
int iteration;
cin >> iteration;
for (i = 0; i < iteration; i)
{
cin >> numVals;
numVals = numVals * 10;
if (i == 0)
{
minVal = numVals;
}
else if (numVals < minVal)
{
minVal = numVals;
}
}
cout << fixed << setprecision(1) << minVal / 10 << endl;
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/491074.html
上一篇:如何保存for回圈結果
下一篇:將列的值從正值更改為負值
