人形UMP9 发表于 2017-11-8 20:09:16

关于C语言变量作用范围的问题

RT,问题如代码注释所示:

#include <stdlib.h>
int main() {
        int i,count,k,sum,number,j;
        scanf("%d",&sum);
        //如果在这里定义K=0,为什么循环会变成死循环?            
        for(count=1;k!=sum;count++){
                k=sum;
                for(;sum>0;){
                        j=sum%10;
                        number=j+number;
                        sum=sum/10;
                        }
                i=number*3+1;
                printf("%d:%d\n",count, i);
                sum=i;
                i=0;
                number=0;       
                }
        printf("%d:%d\n",count, sum);
        return 0;
}

丶忘却的年少o 发表于 2017-11-8 20:19:19

因为sum没有初始值,是一个正很大或者负很小的值

BngThea 发表于 2017-11-8 20:36:42

应该没有问题吧?

人形UMP9 发表于 2017-11-10 07:19:28

BngThea 发表于 2017-11-8 20:36
应该没有问题吧?

我试过,不行,如果在那里加上K=0程序就进入死循环,去掉就正常了

人形UMP9 发表于 2017-11-10 07:20:15

丶忘却的年少o 发表于 2017-11-8 20:19
因为sum没有初始值,是一个正很大或者负很小的值

那输入sum的值以后呢?
页: [1]
查看完整版本: 关于C语言变量作用范围的问题