#include <stdio.h> int main() { int n; scanf("%d", &n); char s[31]; int index = 0; if(n == 0){ s[index++] = '0'; } else { while(n>0){ s[index++] = n % 10 + '0'; n/=10; } } s[index] = '\0'; printf("%s\n", s); return 0; }
首先看一下题
一、问题分析
首先读题,需求
1.输入一个整数
2.将这个整数的顺序变为逆序
3.将整数以字符串的形式输出
4.不考虑负数的情况,且逆序的时候保留末尾的0
二、解题思路
1.定义并接收整数n
2.定义一个字符串s用来存储我们的结果
3.遍历整数n(利用求余的方式)
4.过程中将每一位数字储存到字符串s里
5.打印s
三、具体步骤
使用的语言是C
#include <stdio.h> int main() { int n; scanf("%d", &n); char s[31]; int index = 0; if(n == 0){ s[index++] = '0'; } else { while(n>0){ s[index++] = n % 10 + '0'; n/=10; } } s[index] = '\0'; printf("%s\n", s); return 0; }
需要注意的点是s[index++] = n % 10 + '0';
我们取得的余数+‘0’的操作就是说将这个数字加上‘0’的ASCII码计算出来并赋值给s,这样得到的ASCII码代表的正好就是他本身,因为‘0’的ASCII码是48,比如我们取得的余数是4,4+‘0’就是4+48=52,而4的ASCII码正好是52(0-9的ASCII码是连续的),这样s[index++]表示的字符就是‘4’了