怎么解决只输入一个0时输出错误

#include <stdio.h>
#define N 10
int main(void){
long n=0;
int i=0,j=0,digit=0;
int digit_out[N]={0};
printf("enter a number");
scanf("%d",&n);
while(n>0){
digit=n%10;
digit_out[digit]++;
n=n/10;
}
printf("digit : \t");
for(i=0;i<10;i++){
printf("\t%d",i);
}
printf("\noccurrences : \t");
for(j=0;j<10;j++){
printf("\t%d",digit_out[j]);
}
return 0;
}

#include <stdio.h>
#define N 10
int main(void) {
long n = 0;
int i = 0, j = 0, digit = 0;
int digit_out[N] = { 0 };
printf("enter a number");
scanf_s("%d", &n);

if (n == 0)
{
    digit_out[n]++;
    printf("digit : \t");
    for (i = 0; i < 10; i++)
    {
        printf("\t%d", i);
    }
}
while (n > 0) 
{
    digit = n % 10;
    digit_out[digit]++;
    n = n / 10;
}    
printf("digit : \t");
for (i = 0; i < 10; i++) {
    printf("\t%d", i);
}
        printf("\noccurrences : \t");
        for (j = 0; j < 10; j++) {
            printf("\t%d", digit_out[j]);
        }
    

return 0;

}
好了

img


兄弟下次记着把题目在发出来!!!

img

后面加上这个就行了

scanf("%ld", &n);