我有两个输入,唯一的区别是我在第二个输入中将“double”替换为“float”。然而,第一个可以按预期运行,但不是第二个。第二个不会以0.1的输入结束。任何人对此有一些想法?非常感谢!在这个输入中float和double有什么区别?
第一输入:
#include <iostream>
using namespace std;
int main()
{
double input;
input = 0;
double sum = 0;
cout << "Please enter a series numbers and end with 0.1: ";
cin >> input;
while (input != 0.1)
{
sum += input;
cout << "The cumulative sum is: " << sum << endl;
cin >> input;
}
return 0;
}
Please enter a series numbers and end with 0.1: 1 2 3 0.1
The cumulative sum is: 1
The cumulative sum is: 3
The cumulative sum is: 6
第二输入:
#include <iostream>
using namespace std;
int main()
{
float input;
input = 0;
float sum = 0;
cout << "Please enter a series numbers and end with 0.1: ";
cin >> input;
while (input != 0.1)
{
sum += input;
cout << "The cumulative sum is: " << sum << endl;
cin >> input;
}
return 0;
}
Please enter a series numbers and end with 0.1: 1 2 3 0.1
The cumulative sum is: 1
The cumulative sum is: 3
The cumulative sum is: 6
The cumulative sum is: 6.1
另一种方法是说“以'end'结尾'”或任何其他文本,并且让你的循环条件为'while(cin)'(或者甚至更好,while(cin >> input))并且摆脱另外两个'cin >> input'的重复实例)。如果他们输入的东西不是有效的浮点数,那么循环将结束。 – 2014-10-06 06:35:18