【入门三】求余和倒序

 

将一个数倒序有几种方法。我们先从简单的开始。

实例1

有几位数就声明几个变量,要倒序时,直接改变变量的顺序即可

 1 # include <stdio.h>                      // 调用标准输入/输出库<stdio.h>
 2 
 3 int main(void)
 4 {
 5     int a, b, c, d, e;                   // 声明a,b两个整数
 6 
 7     printf("输入一个两位数: ");          // 每个语句以 ';' 结尾,scanf之前的printf语句会自动换行
 8     scanf_s("%1d%1d", &a, &b);           // 限定每个%1d只读入1个字符。这样就保证了两位数,注意字符与字符间不能有空格
 9     printf("倒序为:%d%d\n", b, a);
10 
11     printf("输入一个三位数: ");
12     scanf_s("%1d%1d%1d", &c, &d, &e);    // 符号 & 表示创建一个指向变量的指针
13     printf("倒序为:%d%d%d\n", e, d, c);  
14     
15     return 0;                            // 返回整数0,0表示函数正常退出,从而结束程序
16 }
展开

 注意scanf_s(用scanf也可,不过有的编译器会发出警告)在寻找整数或者浮点数的开头时,会先跳过每个空符,直到找到非空白字符

为止。也就是说,如果我们用scanf_s("%1d%1d", &a, &b)时,输入.1 . 2(.代表空格),那么scanf_s会先跳过数字开头的空格,将

1与第一个%1d匹配,开始寻找第二个%1d,遇到第二个空格,跳过(只有在读取数的开头时才会跳过空格),而如果我们输入123456,

由于每个%1d只能读入1个字符,所以两个整数分别是12, 345,6将会舍去。

----------------------------------------------------------------------------------------------

实例2

用求余的方法,分别求出个位,十位,百位数

 1 # include <stdio.h>
 2 
 3 int main(void)                                       // int 表示函数返回的是整数值,void: 空,表示函数没有参数
 4 {
 5     int a, b;                                        // 声明两个整数型变量
 6     printf("输入1个两位数: ");
 7     scanf_s("%2d", &a);                              // 限制读入两个字符,确保为两位数
 8     printf("倒序为: %d%d\n", a % 10, a / 10);        // % 表示求余,左为个位数,右为十位数
 9     
10     printf("输入1个三位数: ");
11     scanf_s("%3d", &b);
12     printf("倒序为: %d%d%d\n", b % 10, b % 100 / 10, b / 100 );  // 左为个位,中为十位,右为百位数
13 
14     return 0;                                                    // 返回整数0,0表示函数正常退出,从而结束程序
15 
16 
17 }
展开

注意,对于int整数的数字来说,'/' 的结果是向下取值的,也就是2.7取2,-2.7取-2(向0靠近),对于小数就没影响,

所以一般 '\' 都用于float浮点型的数字,再附上一个四位数(假如是a)的求余方法,大家应该就能知道规律了。

千位: a / 1000

百倍: a % 1000 / 100

十位: a % 100 / 10

个位: a % 10

 

posted @ 2016-08-07 16:30  坏小孩D_R  阅读(400)  评论(0编辑  收藏  举报