這一點是找到最小的數字,次最小的數字和最大的數字。然後按升序輸出。然而,當我試圖運行這個程序時,我得到了0,一個指數數字和一個3(輸入的數字是1,2,3)以保持它簡單並確保它工作。我不確定這些奇怪的結果來自哪裏,沒有涉及數學,所以我不確定這些是甚麼可能的。另外,這個練習中不允許使用數組。相信我,我寧願這樣做。排序3個數字yeilds奇怪的結果(C++)
//local variables
int num1;
int num2;
int num3;
int numSmall;
int numMid;
int numLarge;
//Prompt the user for 3 numbers
cout << ("Please enter your first number: ")<<endl;
cin >> num1;
cout << ("Please enter your second number: ")<<endl;
cin >> num2;
cout << ("Please enter your final number: ")<<endl;
cin >> num3;
//compare the 3 numbers to find the order
if (num1 > num2 && num1 > num3){
numLarge = num1;
if (num2 > num3){
numMid = num2;
numSmall = num3;
}
else
numMid = num3;
numSmall = num2;
}
else if (num2 > num1 && num2 > num3){
numLarge = num2;
if (num1 > num3){
numMid = num1;
numSmall = num3;
}
else
numMid = num3;
numSmall = num1;
}
else{
numLarge = num3;
if (num1 > num2){
numMid = num1;
numSmall = num2;
}
}
cout << ("The smallest number is: ") << numSmall << endl;
cout << ("The next smallest number is: ") << numMid << endl;
cout << ("The largest number is: ") << numLarge << endl;
//Pause to read output
system ("pause");
//clear screen to display output
system ("cls");
//Indicate to OS successful termination of program
return 0;
解決此類問題的正確工具是您的調試器。在*堆棧溢出問題之前,您應該逐行執行您的代碼。如需更多幫助,請閱讀[如何調試小程序(由Eric Lippert撰寫)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。至少,您應該\編輯您的問題,以包含一個[最小,完整和可驗證](http://stackoverflow.com/help/mcve)示例,該示例再現了您的問題,以及您在調試器。 –
如果在其他內部沒有其他的東西,那麼就有一個控制流程根本不會做任何事情。 –