我有这个问题,我可以输入"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;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
您正在尝试读取-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;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
389 次 |
最近记录: |