Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么我必须在这段代码中使用float而不是int?_C - Fatal编程技术网

C 为什么我必须在这段代码中使用float而不是int?

C 为什么我必须在这段代码中使用float而不是int?,c,C,如果类型是整数,那么sum的结果是0,为什么 main(){ int n,s=0; float a; printf("Input a integer number: "); scanf("%d",&n); while(a!=0){ a=n%10; s=s+a; n=n/10; } printf("Sum: %d",s); getch(); } 对不起我的英语,非常感谢! 你

如果类型是整数,那么sum的结果是0,为什么

main(){
    int n,s=0;
    float a;
    printf("Input a integer number: ");
    scanf("%d",&n);

    while(a!=0){
        a=n%10;
        s=s+a;
        n=n/10;
    }
    printf("Sum: %d",s);
    getch();
}
对不起我的英语,非常感谢!
你能告诉我这个的英文名称吗:例如:“12345”是一个数字,那么“1,2,3,4,5”的名称是什么呢?

我假设你在计算组成一个数字的数字之和

问题是您无法初始化
a
。如果它恰好得到初始值
0
,while循环中的代码将永远不会执行

此外,条件错误,您应该改为在
n
上进行测试。考虑一下如果你输入<代码> 101 <代码>会发生什么。当前代码将停止,然后到达
0
,并将输出
1
的总和,而不是
2

因此,如果我们解决了这些问题:

int main() {
    int n,s=0;
    int a;
    printf("Input a integer number: ");
    scanf("%d",&n);

    while (n!=0) {
        a=n%10;
        s=s+a;
        n=n/10;
    }
    printf("Sum: %d",s);
    getch();
    return 0;
}

float a初始化为非零。例如
float a=-1.0f
@BLUEPIXY:是的,我知道,但在这段代码中,为什么我必须使用float而不是integer?似乎我们更应该使用integer<代码>整数a=-1
@someuser抱歉我不明白:(那
a
是指未初始化的值是个问题。非常感谢!