int CountDigit( int number, int digit ){
int count=0;
if(number<0){
int n,m;
m=-number;
while(1){
n=m%10;//只进行了两次取余运算就结束?例输入-21252 2
m=(-1*number)/10;
if(n==digit){
count++;
}
if(m==0){
break;
}
}
}else{
int n,m;
m=number;
while(1){
n=m%10;
m=number/10;
if(n==digit){
count++;
}
if(m==0){
break;
}
}
}
return count;
}
你现在不是循环提前结束了,是陷入死循环了
m=(-1*number)/10
number不变,m也不变,永远不为0
代码测试一下是死循环。
m=(-1*number)/10 应该改为 m=m/10
这样就可以返回-21252中有3个2了
你是不是代码保存,重新编译看看。不行新建一个项目测试