首页 > 编程语言 > 详细

C语言程序设计-谭浩强

时间:2020-03-12 20:18:01      阅读:66      评论:0      收藏:0      [点我收藏+]

给一个不多于5位的正整数,要求:1.求它是几位数;2.逆序打印出各位数字;3.正序打印出各位数字。

#include<stdio.h>
void counter(int x) //求数的有几位数
{
int count = 0;
while (x)
{
x /= 10;
count++; //定义一个初始化为0的数记录,把收到的数值每次除10直到为0停止,每次除10后记录值加1
}
printf("%d\n",count);
}
void print(int y) //正序按位输出
{
int mask, num,num1,num2;
num = y;
mask = 1;
num2 = y; //先用个初始化为1的数,把收到的数字每次除10直到为0,然后每次初始化的值都乘10记录
while (num>9)
{
num /= 10;
mask *= 10;
}
do
{
num1 = num2 / mask; //然后把数除以上面记录的数以获取首位数
printf("%d", num1);
printf(" ");
num2 %= mask; //取下后几位数然后重复计算直到记录值为0
mask /= 10; //除10以一位一位的形式输出剩下的位数
} while (mask>0);
printf("\n");
}
void queue(int z) //倒序输出
{
int print, num;
do
{
num = z; //取模输出最后一位
num = z % 10;
z /= 10; //把前面没被取模的留作下一次使用
printf("%d", num);
} while (z);
printf("\n");
}
int main()
{
int num,num1,num2,num3;
num1 = 0;
num3 = 0;
scanf("%d", &num);
counter(num);
print(num);
queue(num);
return 0;
}

C语言程序设计-谭浩强

原文:https://www.cnblogs.com/old-horse/p/12482155.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!