while(i)中i为浮点型,导致程序死循环,无法输入

2021-01-15 20:09发布

做一个c++的练习,要求我输入整数并输出累计和,我就用了while循环,循环结束条件是输入0,但我输入整数还好,输入带小数点的浮点数系统就一直自我输入自我输出,加1循环下去。

//练习5.3 编写输入数字的程序,输出结束标志是0;
//输入后,程序自动输出目前为止的累计和。

include<iostream>

using namespace std;
//const int Size = 16;
int main() {
long i, sum = 0LL;
cout << "Please enter a number:";
cin >> i;
while (i) {
sum=sum+i;
cout << "The total of the numbers which was inputed is:" << sum << endl;
cout << "Please enter another number :";
cin >> i;
}
system("pause");
return 0;
}

标签:
2条回答
The star\"
2楼-- · 2021-01-15 20:36

把long改成double

查看更多
成全新的幸福
3楼-- · 2021-01-15 20:48

是这样的没错的,所以呢用浮点型请谨慎,他会无限接近0但是不好等于0,高数中有类似的说法,没必要细究,用的时候谨慎

查看更多
登录 后发表回答