作业帮 > 综合 > 作业

用switch语句求出输入一个不多于5位正整数求出它是几位数?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/23 23:06:29
用switch语句求出输入一个不多于5位正整数求出它是几位数?
供参考——
#include "stdafx.h"
#include "stdio.h"//
void main(void){/*主程序*/
int nDec,i,n;
printf("输入一个不大于5位的十进制整数!\nnDec=");
scanf("%d",&nDec);
for(i=1,n=nDec;n/=10;i++);
switch(i){
case 1:
n=1;
break;
case 2:
n=2;
break;
case 3:
n=3;
break;
case 4:
n=4;
break;
case 5:
n=5;
break;
}
printf("输入的是%d位数!\n",n);
}
再问: n/=10这个/=是什么意思;和这个for(i=1,n=nDec;n/=10;i++); 能详细说明意思?
再答: 就是n/=10->n=n/10.
再问: 不明。。。\n我就知道,,是换行
再答: 看清楚啊,换行是\n,是反斜线,而正斜线/是取整除的意思,就是5/2=2(只取整数部分),1/3=0...for(i=1,n=nDec;n/=10;i++)是个循环,每循环一次i增加1,每一循环中把n用10取整除,一直到n/=10表达式为0了就停止,那么i的值就是位数。比如:m=361,第一次循环i=1,361/10=36;第二次循环i=2,36/10=3;第三次循环i=3,3/10=0,循环停止,i=3就是位数,然后用switch(i)来测试i到底是几……