数字の後ろにあるゼロの数を見つけたかったので、次のコードを作成しました。特定の数字ではうまくいきましたが、数字が大きいほど異常を示し始めました。 "12345678"という数字を入力したときと同じですが、0が正しく表示されますが、 "123456789"と入力すると1つのゼロが表示されます。私のコードに間違いがありますか?数字の末尾のゼロの数を見つける
#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がありますか? –