例题 1-2 三位数反转
输入一个三位数,分离出它的百位,十位和个位数,反转后输出。
样例输入:
127
样例输出:
721
程序 1-6 三位数反转(1)
1 #include<stdio.h> 2 int main() 3 { 4 int n; 5 scanf("%d", &n); 6 printf("%d%d%d",n % 10, n % 100 / 10, n/100); 7 8 return 0; 9 }
当输入的是普通三位数字,可以达到目的。
但是当输入的是以0结尾的数时,反转后是否要舍去0。题目并没讲清楚。如果要输出诸如052之类则需要把做如下修改:
程序 1-7 三位数反转(2)
1 #include<stdio.h> 2 int main() 3 { 4 int n; 5 scanf("%d", &n); 6 int m; //新增 7 m = (n % 10) * 100 + (n / 10) % 10 * 10 + (n / 100);//修改 8 printf("%03d", m); 9 10 return 0; 11 }
这里要注意第8行, 3 表示不足三位的以三位数输出,前面留空,而 03 则表示不足三位的以三位数输出前面以0填充。虽说容易理解,但是是一个不错的技巧。
例题 1-3 交换变量
输入两个整数 a和b,交换二者的值,然后输出。
样例输入:
824 16
样例输出:
16 824
程序 1-8 交换变量(1)
#include<stdio.h> int main() { int a ,b; scanf("%d%d", &a, &b); int temp; temp = a; a = b; b = temp; printf("%d %d", a, b); }
第一种方法最容易想到,引入第三方变量,暂时储存其中一个值。可以类比于白醋和酱油借助第三个空瓶子互换。但也有一些差异,当酱油被倒入空瓶子中后,原来的酱油瓶就空了。在计算机语言中,赋值 a = b后, a的值发生改变,但b的值并不会发生改变。
第二种方法不借助第三变量:
程序 1-9 变量交换(2)
#include<stdio.h> int main() { int a ,b; scanf("%d%d", &a, &b); a = a + b; b = a - b; a = a - b; printf("%d %d", a, b); }
一步一步下来能够理解,但还是没第一个好。实际中推荐使用第一种方法。。
程序 1-10 变量交换(3)
1 #include<stdio.h> 2 int main() 3 { 4 int a ,b; 5 scanf("%d%d", &a, &b); 6 printf("%d %d", b, a); 7 }
第三种方法比较讨巧,用不用看具体情况。
原文:http://www.cnblogs.com/Traim304/p/4614804.html