三点水、 2022-10-08 14:41 采纳率: 78.6%
浏览 19
已结题

无限循环条件下,语句执行两次就结束,问题出在何处

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;
}

  • 写回答

2条回答 默认 最新

  • 於黾 2022-10-08 14:47
    关注

    你现在不是循环提前结束了,是陷入死循环了
    m=(-1*number)/10
    number不变,m也不变,永远不为0

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月16日
  • 已采纳回答 10月8日
  • 创建了问题 10月8日