循环中num值没有发生变化,所以只要num不是个位数,就死循环了循环中改为 i = i/10;不是 i=num/10;
for循环使用有问题,逻辑不对,每一次循环,你的i都是等于num,所以当num大于10的时候进入了死循环。你可以尝试把i定义在外面
int i=num; for(;i!=0;){ i=i/10; weishu++; }