首页 新闻 搜索 专区 学院

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

0
悬赏园豆:20 [已解决问题] 解决于 2021-01-15 20:26

做一个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;
}

夏目&贵志的主页 夏目&贵志 | 初学一级 | 园豆:186
提问于:2021-01-15 10:07
< >
分享
最佳答案
0

把long改成double

夏目&贵志 | 初学一级 |园豆:186 | 2021-01-15 11:31
其他回答(1)
0

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

收获园豆:20
小小咸鱼YwY | 园豆:3191 (老鸟四级) | 2021-01-15 10:48

没事了,是我傻乎乎搞错类型了,long是整型,当然不能用来在浮点的输入。

支持(0) 反对(0) 夏目&贵志 | 园豆:186 (初学一级) | 2021-01-15 11:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册