因此,我必須編寫一個程序來讀取兩個整數,並確定從第一個int刪除任何數字後,新的數是否等於第二個讀取整數(例如,如果輸入是123而且它應該打印出「是」,因爲在交叉出3之後,兩個整數相等)。我認爲我寫的代碼是正確的,但程序不打印任何東西。這裏是代碼:C++從整數中刪除一個數
#include <iostream>
using namespace std;
int main()
{
unsigned int a, b, temp, len = 0;
cin >> a >> b;
temp = a;
while(temp!=0)
{
temp = temp/10;
len++;
}
int k = 1, m = 0, p = 1;
while (k>len || m == b)
{
for (int i = 1; i<=len-k; i++)
p = p*10;
m = a/(p*10)*p + a%p;
if (m == b)
cout << "Yes" << endl;
if (k == len && m!=b)
cout << "No" << endl;
k++;
}
system ("pause");
return 0;
}
使用正確的工具來解決這些問題是你的調試器。在*堆棧溢出問題之前,您應該逐行執行您的代碼。如需更多幫助,請閱讀[如何調試小程序(由Eric Lippert撰寫)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。至少,您應該\編輯您的問題,以包含一個[最小,完整和可驗證](http://stackoverflow.com/help/mcve)示例,該示例再現了您的問題,以及您在調試器。 –
「是否在從第一個int中刪除任何數字後,新的數字等於第二個讀取整數」, 只要有'first_number> second_number',這不會總是成立的嗎? –
不,第一個總是應該更大 - 例如,如果你有123和12作爲輸入,它應該打印「是」 - 我們劃掉了3並且新的整數相等 – unfi