ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

C 练习实例29

2026/9/17 0:29:13 拓冰建站 浏览量
C 练习实例29

题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

题目分析:

假设一个九位数12346789,我们想得到它是几位数,可以直接循环除以10,除到商为零位置。可以想象为每一轮循环抹掉个位数。

判断位数的代码:

//判断整数位数
#include <stdio.h>
int main()
{int num=123456789;int cnt=0;while(num){num/=10;	//等价于num=num/10cnt++;		//cnt==count,计数的意思}printf("这个数是%d位",cnt);return 0;
}
这个数是9位
--------------------------------
Process exited after 0.2679 seconds with return value 0
请按任意键继续. . .

如果想要得到逆序的数呢?答:对number循环取模即可得到每一位数,在此基础上加2条代码即可

//判断整数位数
#include <stdio.h>
int main()
{int num=123456789;int cnt=0;int bit;	//存储每一位数while(num){bit=num%10;printf("%d",bit);	//逐次打印出每一位数即可num/=10;	//等价于num=num/10cnt++;		//cnt==count,计数的意思}printf("\n这个数是%d位",cnt);return 0;
}

结果:

987654321
这个数是9位
--------------------------------
Process exited after 0.3162 seconds with return value 0
请按任意键继续. . .

求逆序数方法二:

//判断整数位数
#include <stdio.h>
int main()
{int num=7003500;int cnt=0;int bit;	//存储每一位数int ret=0;	//得到的逆序数while(num){bit=num%10;ret=ret*10+bit;//将得到的每一位数*10+bit即可逐次逆置num/=10;	//等价于num=num/10cnt++;		//cnt==count,计数的意思}printf("\n这个数是%d位",cnt);printf("\n逆序数是%d",ret);return 0;
}
这个数是7位
逆序数是53007
--------------------------------
Process exited after 0.3103 seconds with return value 0
请按任意键继续. . .

但这种方法不会显示靠最右边的零。