最令人头大的答案错误,我连负数都考虑了

#include<stdio.h>
#include<math.h>
int main()
{
int a,k,i,b=0;
scanf("%d",&a);
a=fabs(a);

if(a==0)
    b=1;
k=log10(a)+1;
for(i=1;i<=k;i++){
    if(a%10==0){
    a=a/10;
    b++;}


    else
      a=a/10  ;

}
printf("%d\n",b);
return 0;

}

img


#include<stdio.h>
#include<math.h>
int main()
{
    int a,k,i,b=0;
    scanf("%d",&a);
    a=fabs(a);

    if(a==0)
        ++b;
    while(a){
        if(a%10==0){
            ++b;
        }
        a/=10;
    }


    printf("%d\n",b);
    return 0;
}