当前位置: 首页 > news >正文

2025-03-06 学习记录--C/C++-PTA 习题6-6 使用函数输出一个整数的逆序数

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️

在这里插入图片描述
在这里插入图片描述

二、代码(C语言)⭐️

#include <stdio.h>

int reverse( int number );

int main()
{
    int n;

    scanf("%d", &n);
    printf("%d\n", reverse(n));

    return 0;
}

/* 你的代码将被嵌在这里 */
#include <math.h>
int reverse( int number ) {
    int numArr[100]; // 定义一个数组,用于存储数字的每一位
    int cnt = 0; // 计数器,用于记录数字的位数,初始值为0
    int flag = 0; // 标志位,用于控制是否允许输出,0-不允许,1-允许
    int temp = 0; // 临时变量,用于存储最初的number值
    int result = 0; // 最终结果

    // 如果number是负数,先将其转换成正数进行处理
    if(number < 0) {
        temp = number; // 将未处理的number赋值给临时变量temp
        number *= -1; // 将负数转换成正数
    }

    // 依次将number的个位、十位、百位等数字存入numArr数组中
    while(number != 0) {
        numArr[cnt] = number % 10; // 取出当前最低位的数字
        cnt++; // 计数器加1,记录位数
        number /= 10; // 去掉已经处理的最低位
    }

    // 遍历numArr数组,将数字重新组合成反转后的整数
    for(int i = 0; i < cnt; i++) {
        // 找到第一个不为0的数字后,允许输出处理
        if(numArr[i] !=  0) {
            flag = 1; // 设置标志位为1,允许输出
        }
        // 如果允许输出,则将当前数字乘以相应的10的幂次方并累加到结果中
        if(flag == 1) {
            result += (numArr[i] * pow(10,cnt - i - 1));
        }
    }

    // 如果最初的number是负数,则将结果转换回负数形式
    if(temp < 0) {
        result *= -1;
    }

    // 返回最终的反转结果
    return result;
}

在这里插入图片描述
在这里插入图片描述

相关文章:

  • linux应用:文件描述符、lseek
  • RAGflow 无法加载Embedding模型
  • Java阻塞队列深度解析:高并发场景下的安全卫士
  • AI绘画软件Stable Diffusion详解教程(7):图生图基础篇
  • 数字电路基础——逻辑门
  • 获取视频第一帧兼容ios
  • 数据库复习(第五版)- 第八章 存储过程
  • Docker save命令怎么用
  • 大型WLAN组网部署(Large scale WLAN network deployment)
  • PDF转JPG(并去除多余的白边)
  • Linux开启命令审计功能记录用户的每一步操作
  • python基础课程整理--元组的基础
  • 期望、方差和协方差
  • 【VTK】三种面切片数据 加载模型 scalars设置颜色透明度 加载raw 医学数据
  • QT——线程
  • SQL_语法
  • 逐行拆解 C 语言:数据类型、变量
  • 【初探数据结构】线性表——链表(二)带头双向循环链表(详解与实现)
  • MySQL 架构、索引优化、DDL解析、死锁排查
  • 在ubuntu20.4中如何创建一个虚拟环境(亲测有效)
  • 建网站手机怎么做/seo基础理论
  • 网站审核要多久/seo优化基础教程pdf
  • wordpress替换字体颜色/网站seo视频教程
  • 佛山顺德容桂网站制作/百度站长工具官网
  • 高级网站开发工程师证/快速排名服务平台
  • 企业自己做网站方法/廊坊关键词优化平台