當我運行這個程序的課程時,每當我輸入一個'|'符號時,我都會陷入無限循環中。字符結束while循環。我覺得我失去了一些明顯的東西。陷入無限循環
這個問題在Bjarne Stroustrup的C++編程書籍的第126頁找到,但作爲一個快速簡要介紹,我只是應該找到用戶輸入的最大和最小數字,並在其上返回信息。輸入'|'應該退出循環,以便我可以回到提供有關所有輸入數字信息的部分,但每當輸入該字符(或任何不是數字的字符)時,它就會創建一個無限循環。
這是我的代碼。
int main()
{
vector<double> nums;
while (true)
{
double current_num;
cout << "enter a double \n";
cin >> current_num;
if (current_num == '|')
break;
nums.push_back(current_num);
sort(nums.begin(), nums.end());
cout << nums[nums.size()-1] << " is the largest so far.\n";
cout << nums[0] << " is the smallest so far.\n";
}
cout << nums[nums.size()-1] << " is the largest number.\n";
cout << nums[0] << " is the smallest number.\n";
cout << "Number of values entered: " << nums.size() << '\n';
double sum = 0;
for (int k = 0; k<nums.size(); ++k)
sum += nums[0];
cout << "Sum of all values: " << sum << '\n';
for (int j=0; j<nums.size(); ++j)
cout << nums[j] << ' ';
return 0;
}
我在課堂上使用VS13,我是沒有這個問題,但我現在的編碼在記事本+ +和使用膩子在家裏編譯(雖然我懷疑這有什麼用它做)。
'「|」'是不是一個'double',是嗎? – 2014-09-29 04:02:26
爲什麼你將數字存儲在數組中並對它們進行排序?只是保持運行值 – 2014-09-29 04:06:43