问题:
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
问题分析:
想要将一个整数进行倒序显示,我们首先观察规律可以发现原来数字的最高位变成了现在数字的最低位,中间位数的顺序也在相应的发生改变,因此,想要完成这个任务我们首先就应该把这个整数的各个位分离出来,然后重新组合。
问题解决
假如我们输入的数为123,那么它的个位为3、十位为2、百位为1,要怎么计算出来呢?这就体现了计算思维!
1.个位3=123%10(%为取模);
2. 十位2=123/10%10;
3. 百位1=123/10/10%10
接下来要做的就是将它们重新组装回去。
321=3
100+2
10+1;
因此,将它转化成程序语言就是:
#include<stdio.h>
int main(void)
{
int num,newnum,ge,shi,bai;
printf("请输入一个正整数:");
scanf("%d",&num);
bit=num%10;//分离出个位
tenth=num/10%10;//分离出十位
percent =num/100%10;//分离出百位
newnum=ge*100+shi*10+1;//重新组合
printf("%d倒序之后为%d",num,newnum);
return 0;
}
除此之外我们还可以用循环结构来解决这个问题:
#include<stdio.h>
int main(void)
{
int num;//输入的数
int bit;//个位数字
int newnum;//倒序后的数
int value;
printf("请输入一个正整数:");
scanf("%d",&num)
value=num;
newnum=0;
while(num!=0)
{
bit=num%10;
newnum=newnum*10+bit;
num/=10;
}
printf("%d倒序之后为%d",value,newnum);
return 0;
}
版权声明:本文为qq_45321888原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。