我想找到一個數字中的尾隨零數,所以我做了下面的代碼。它對某些數字運行良好,但對於更大的數字,它開始顯示異常。就像當我輸入數字「12345678」它顯示零0的這是正確的,但是當我輸入「123456789」它顯示一個零,什麼可能是我的代碼中可能的錯誤?找到一個數字中的尾隨零數
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int n = 0;
float s;
cin>>s; //the number to be given as input
for(int j = 0;j <100;j++){
s = s/10;
if(s == floor(s)){
n++;
}else{
break;
}
}
cout<<n<<endl;
return 0;
}
BTW'n'未初始化。 –
如果我是你,我會把這個數字讀入一個'std :: string'中,並從該字符串的末尾開始計算零。 – NathanOliver
'float'的精度有限。您可能會丟掉最後一位數字。 1.2345678E7有多少個0? –