牛客网刷题 | BC94 反向输出一个四位数

目前主要分为三个专栏,后续还会添加:

        专栏如下:                 C语言刷题解析       C语言系列文章       我的成长经历

感谢阅读!

初来乍到,如有错误请指出,感谢!


 描述

将一个四位数,反向输出。

输入描述:

一行,输入一个整数n(1000 <= n <= 9999)。

输出描述:

针对每组输入,反向输出对应四位数。

示例1


解题思路 : 

存放这几个数字

然后取模的方式来实现

1234 % 10 = 4

(1234/10) % 10 = 3

(1234/100) % 10 = 2

1234/1000= 1


理解题目要求: 题目要求我们输入一个四位数,并将其每一位数字反向输出。这意味着如果输入是1234,输出应该是4321。

输入处理: 首先,我们需要从用户那里获取输入。在C语言中,我们可以使用scanf函数来实现这一点。我们需要确保输入是一个四位数,即1000到9999之间的整数。

分离每一位数字: 为了反向输出数字,我们需要先获取每一位数字。在C语言中,我们可以使用模运算符%来获取个位数,然后通过整除运算符/来去掉已经处理过的位数。

构建反向数字: 接下来,我们需要构建反向的数字。我们可以通过将每一位数字乘以它们在反向数字中的位置对应的10的幂次来实现这一点。例如,个位数乘以1000(因为它现在是千位),十位数乘以100,百位数乘以10。

输出结果: 一旦我们构建了反向数字,我们就可以将其输出。在C语言中,我们可以使用printf函数来输出结果。

考虑边界条件: 虽然题目已经限定了输入是一个四位数,但在实际编程中,我们可能需要考虑其他边界条件,比如输入的验证,确保用户输入的是一个有效的整数。


代码 1:

/*  解题思路 :  用数组存放这几个数字 
                然后取模的方式来实现
                1234 % 10 = 4
                (1234/10) % 10 = 3
                (1234/100) % 10 = 2
                 1234/1000= 1  
*/
//笨方法...请各位大佬见谅

# include <stdio.h>
int main ()

{
    int n = 0;
    scanf("%d",&n);//用户输入

    if (n <= 9999 && n >= 1000) //数据范围
    {
        int a = n%10;//千位
        int b = (n/10)%10;//百位
        int c = (n/100)%10;//十位
        int d = n/1000;//个位

        printf("%d%d%d%d\n",a,b,c,d);//按照从后往前顺序打印
    }

    return 0;
}

 代码 2:

这代码.......我竟无言以对

天才!

#include<stdio.h>
int main()
{
    int a,b,c,d;
    scanf("%1d%1d%1d%1d",&a,&b,&c,&d);
    printf("%d%d%d%d\n",d,c,b,a);
    
    
    return 0;
}

代码 3 :

#include<stdio.h>

int main()

{
int a;
scanf("%d",&a);
int i,b;
for(i=1;i<=4;i++)
{
    b=a%10; 
    a=a/10;
    printf("%d",b);
}
return 0;
}

#include<stdio.h> // 包含标准输入输出库,用于进行输入输出操作

int main() // 定义主函数
{
    int a; // 定义一个整型变量a,用于存储用户输入的四位数
    scanf("%d", &a); // 使用scanf函数从标准输入读取一个整数并存储到变量a中

    int i, b; // 定义两个整型变量i和b,其中i用于循环计数,b用于存储每轮循环中的个位数数字
    for(i = 1; i <= 4; i++) // 定义一个for循环,循环4次,因为我们需要输出四位数的每一位
    {
        b = a % 10; // 计算a的个位数,即将a与10取模,结果赋值给b
        a = a / 10; // 将a除以10,去掉个位数,为下一次循环做准备
        printf("%d", b); // 输出变量b,即当前的个位数
    }

    return 0; // 程序正常结束并返回0
}

代码 4:

#include<stdio.h> // 包含标准输入输出库,用于进行输入输出操作

int main() // 主函数入口
{
    int a = 0; // 定义一个整型变量a并初始化为0,用于存储输入的四位数
    scanf("%d", &a); // 使用scanf函数从标准输入读取一个整数并存储到变量a中

    while (a) // 当变量a非0时,进入循环
    {
        printf("%d",a%10); // 使用printf函数输出a除以10的余数,即个位数
        a = a / 10; // 将a除以10并赋值给a自身,实现去掉个位的效果
    }

    return 0; // 程序正常结束并返回0
}

知识点 : 

头文件包含: #include<stdio.h>

这个预处理指令告诉编译器包含标准输入输出库,它是进行输入输出操作所必需的。

主函数定义: int main()

这是C语言程序的入口点,每个C程序都从main函数开始执行。

变量声明: int a; int i, b;

int是整型数据的声明,表示这些变量将存储整数。

a用来存储用户输入的四位数。

i用作for循环的计数器。

b用来存储每次循环中提取的数字。

输入函数: scanf("%d", &a);

scanf是一个标准库函数,用于从标准输入(通常是键盘)读取数据。

"%d"是一个格式字符串,指定要读取的数据类型是整数。

&a是变量a的地址,告诉scanf函数在哪里存储读取的数据。

for循环: for(i = 1; i <= 4; i++)

for循环是一种控制流语句,用于重复执行一段代码直到满足特定条件。

初始化表达式i = 1设置循环计数器的初始值。

循环条件i <= 4决定循环何时继续执行。

迭代表达式i++在每次循环结束时更新计数器的值。

取模运算: b = a % 10;

%是取模运算符,用于获取两个数相除的余数。

这里用来获取a的个位数。

整数除法: a = a / 10;

/是整数除法运算符,用于计算两个数相除的整数结果。

这里用来去掉a的个位数,为输出下一个位做准备。

输出函数: printf("%d", b);

printf是一个标准库函数,用于将数据输出到标准输出(通常是屏幕)。

"%d"是一个格式字符串,指定要输出的数据类型是整数。

b是要输出的变量。

程序结束: return 0;

return语句用于从main函数返回一个值。

返回值0通常表示程序正常结束。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值