题解 | #数字颠倒#

数字颠倒

https://www.nowcoder.com/practice/ae809795fca34687a48b172186e3dafe

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

全部评论

相关推荐

10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
头像
11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务