#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’了

 京公网安备 11010502036488号
京公网安备 11010502036488号