1.获取整数的最后一位数
//获取整数的最后一位数字//
2 #define _CRT_SECURE_NO_WARNINGS 1
3 #include <stdio.h>
4 int main()
5 {
6 int no;
7 printf("请输入一个整数:");
8 scanf("%d", &no);
9 printf("最后一位是%d", no % 10);
10 return 0;
11 }
可见,只需要将整数除以10得出余数,此余数就是最后一位数。
2.逆向显示整数
先来思考一个问题:
输入一个正整数,并进行逆向显示。
也就是说,当输入1963的时候,显示出的是3691,当输入非正整数时,提示再输入。
代码如下
#define _CRT_SECURE_NO_WARNINGS 1
2 //逆向显示正整数
3 #include<stdio.h>
4 int main()
5 {
6 int no;
7
8 do
9 {
10 printf("请输入一个正整数:");
11 scanf("%d", &no);
12 if (no < 0)
13 puts("\a请不要输入非正整数。");
14
15 } while (no <=0);
16
17 printf("逆向显示的结果是:");
18 while (no > 0)
19 {
20 printf("%d", no % 10);
21 no /= 10;
22 }
23 puts("。");
24 return 0;
25 }
第一个do语句的作用是将输入的值限定为正值。当循环结束时,no的值肯定为正数。
首先,求出no%10的余数,也就是整数的最后一位数字,结果为3,然后执行以下语句。
no/10;
其结果196会被赋值给no。由此可见,no/=10的作用就是首先取出变量no的最后一位数字,然后将其他位的数字右移一位。
因为no的值196大于0,所以会再次循环,接下来显示196除以10得余数(即1963的倒数第二位数字),然后用196除以10,得到19.
只要no大于0,同样的处理就会循环执行,这样就完成了逆向显示的过程。
当no的值为0的时候,控制表达式no>0不成立,while语句循环也就结束了。