C 除整数外的每个输入都给出13作为输出,为什么?

C 除整数外的每个输入都给出13作为输出,为什么?,c,C,这是代码 #include <stdio.h> #include <conio.h> int main() { int num,sum=0; printf("enter any number to find its sum of digits"); scanf("%d",&num); while (num!=0) { sum+=num%10; num=num/10; } printf(

这是代码

#include <stdio.h>
#include <conio.h>
int main()
{
    int num,sum=0;
    printf("enter any number to find its sum of digits");
    scanf("%d",&num);
    while (num!=0) {
        sum+=num%10;
        num=num/10;
    }
    printf("%d",sum);
    return 0;

}
#包括
#包括
int main()
{
int num,sum=0;
printf(“输入任意数字以查找其数字之和”);
scanf(“%d”和&num);
while(num!=0){
总和+=num%10;
num=num/10;
}
printf(“%d”,总和);
返回0;
}
整数以外的输入总是给出输出13。
为什么会这样

因为您未能检查
scanf()的返回值。
。任何价值都可能出现。您必须始终在C中检查返回值。

如何检查返回值?[叹气]Google scanf()以了解它返回的内容。当输入为非数字时,
scanf(“%d”,&num)
之后,您希望在
num
中看到什么值?我希望会出现错误。