0%

练习题(逆序的三位数)

这个题目我不会,会了之后详解一下。

程序每次读入一个正三位数,然后输出逆序的数字。

如321 123


题目内容

逆序的三位数:

程序每次读入一个正三位数,然后输出逆序的数字。注意,当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

提示:用%10可以得到个位数,用/100可以得到百位数…。将这样得到的三个数字合起来:百位100+十位10+个位,就得到了结果。

注意:除了题目要求的输出,不能输出任何其他内容,比如输入时的提示,输出时的说明等等都不能。这道题目要求输出逆序的数字,程序就只能输出这个数字,除此之外任何内容都不能输出。

输入格式:

每个测试是一个3位的正整数。

输出格式:

输出逆序的数。

输入样例:

123

输出样例:

321

详解


源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
int main() {
int i;
int a;
int b;
int c;
int m;

scanf("%d",&i);

a=i/100;
b=(i%100)/10;
c=i%10;
m=c*100+b*10+a;

printf("%d",m);

return 0;

}

结果

image-20200618112753143


详解

题目要求是:

  • 输入3位的正整数。

  • 824

  • 输出格式,逆序的数。

  • 428

首先可以把 824 看作:a,b,c。

  • 分别代替为百位,十位,个位。

百位:/100 ,可以得到8

十位:(%100)/10 ,取余得到24,再/10可以得到2

个位:%10 ,可以得到4.

C语言中的 % 作为运算符是用来取余的。

最后输出时,以c*100+b*10+a 格式输出。

如果使用:

1
printf("%d%d%d",a,b,c);

输入700时,他就会输出007

不符合题目要求,所以不可用。