/*
这类题看过多次,本来不想写的。
*/
#include <stdio.h>
#include <stdlib.h>
#define LEN 4
int main(void) {
char data[LEN + 1] = ""; // 我使用字符串处理
// {0, 0, 0, 0, 0}
char ch;
int i;
for(i = 0; i < LEN; ++i) {
// 读取一个字符,把字符变为数字,因为ASCII码中的数字字符
// 是连续的,并且从'0'开始,所以减去'0'等于int数字123456789
// '0' - '0' 等于 0
// '1' - '0' 等于 1 ,以此类推
// 接着,把得到的数字加上5,
// 然后除10取余(以10取余),
// 最后再把该数字变为ASCII码(加上'0')。
data[i] = (getchar() - '0' + 5) % 10 + '0';
// 我直接在这读取和处理数字了,并且作为字符处理,
// 是为了方便显示。
}
for(i = 0; i < LEN / 2; ++i) {
// 交换。
ch = data[i];
data[i] = data[LEN - 1 - i];
data[LEN - 1 - i] = ch;
// i = 0 时,
// data[0] data[4 - 1 - 0];
// 即:第一个元素与第四个元素。
}
data[LEN] = '\0'; // 确保字符串末尾空字符
// data[4] = '\0'; 第五个元素
// 作为字符串更加方便显示。
// '\0' 是字符串的结束标识。
// '\0' 即数字0,ASCII码中
// 的可见字符都大于0。
puts(data); // 在屏幕上打印字符串
return 0;
}
/*
取余: %
80 % 10 等于 0,因为没有余数。
6 % 2 等于 0
4 % 3 等于 1
9 % 2 等于 1
余数是小学学的。那是还没学小数,所以5除2,除不尽了。5除2余1。
小学除法中的余数。
10个苹果平均分给3个人吃。3个人各分到3个,最后还多了1个。
这个就是余下的一个。
以前看书时,书上写取模,让我很不理解。那时我不知道什么是取模。
*/
[
本帖最后由 cosdos 于 2009-10-29 22:46 编辑 ]