c语言编程(输入一个整数,统计它有几位数)如何用while语句代替do-while语句

这是do-while语句#include"stdio.h"voidmain(){intm,n=0;printf("iniputanumber:\n");scanf("%d... 这是do-while语句 #include "stdio.h" void main() { int m,n=0; printf("iniput a number:\n"); scanf("%d",&m); m=m>0?m:-m; do{ n++; m/=10; }while(m!=0); printf("n=%d \n",n); } 展开
 我来答
White_MouseYBZ
推荐于2018-04-18 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6470万
展开全部

设输入的整数保存在变量n,用一个初值为0的变量m记录n除以10的次数,每除以一次10为m增1,直到n变为0为止。这时m的值就是n的长度。举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "stdlib.h"
int main(void){
    int n,m;
    printf("Please enter a decimal integer...\nn=");
    scanf("%d",&n);
    printf("%d is a ",n); 
    m = n ? 0 : 1;
    while(n)//n不为0继续下一行
        m++,n/=10;
    printf("%d digit number.\n",m);
    return 0;
}
sese0913
2014-09-28 · 超过66用户采纳过TA的回答
知道答主
回答量:180
采纳率:0%
帮助的人:63.6万
展开全部
该过程的实现见下图所示… 说明:不用区分m的值是否为负数的情况…
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
枫岛HO604
推荐于2017-11-26 · TA获得超过228个赞
知道答主
回答量:120
采纳率:0%
帮助的人:143万
展开全部
#include<stdio.h> void main() { int num; int m=0; printf( "please input a number:\n" ); scanf( "%d", &num ); if( num == 0 ) { m=1; goto loop; } while( num!=0 ) { m++; num=num/10; } loop: printf( "%d\n", m ); } 我不明白你为什么非要把0和其他数一起用到while里统计,但是我认为这样做不是写程序的真正目的,我们应该变通,如果0特殊,你完全可以用特殊方法来处理或者把输入的整数改成字符串处理,这样就不会有问题了,有些办不到的事或很绕弯的事情过多的考虑是不值得的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式