永发信息网

#include int ws(int n){int a=1;while(n/=10)a++;return a;}voi

答案:1  悬赏:30  手机版
解决时间 2021-08-16 07:04
  • 提问者网友:疯子也有疯子的情调
  • 2021-08-15 09:38
#include
int ws(int n)
{
int a=1;
while(n/=10)
a++;
return a;
}
void main( )
{
int n;
printf(please input a integer\n);
scanf(%d,&n);
printf(它的位数是%d\n,ws(n));
}
while(n/=10)是什么意思啊
最佳答案
  • 五星知识达人网友:末日狂欢
  • 2021-08-15 10:46

n/=10 就是 n = n/10 也就是 把 n 除 10 的值 赋值给 n.
由于n和10都是整形,所以/是整除,即舍去了余数,如 100/10 = 10,101/10 = 10 (余数1舍去了),99 / 10 = 9 (余数9舍去了),10/10 = 1,9/10 = 0 (余数9舍去了).
你的程序中是判断一个整数有多少位,比如 1234.
第1次 循环开始 n/10后 n = 123,循环结束 a=2
第2次 循环开始 n/10后 n = 12,循环结束 a=3
第3次 循环开始 n/10后 n = 1,循环结束 a=4
第4次 循环开始 n/10后 n = 0,终止循环(因为非0值,执行循环,0终止循环)
所以结果1234是一个4位数
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯