「Mac玩转仓颉内测版19」PTA刷题篇10 - L1-010 比较大小

本篇将继续讲解PTA平台上的题目 L1-010 比较大小,通过对三个整数的排序,进一步提升Cangjie编程语言的数组操作与逻辑处理能力。


关键词
  • PTA刷题
  • 数字排序
  • 条件判断
  • Cangjie语言

一、L1-010 比较大小

题目描述:给定3个整数,要求将它们从小到大排序,并按格式输出。

  • 输入格式:在一行中输入3个整数,其间以空格分隔。
  • 输出格式 :在一行中将3个整数从小到大输出,数字间以 -> 相连。

解题思路
  1. 手动实现排序算法:通过条件判断对3个整数进行从小到大的排序。
  2. 格式化输出 :将排序后的整数按要求格式输出,数字间用 -> 分隔。

代码实现
cangjie 复制代码
package cjcDemo

import std.console.*
import std.convert.*

// 自定义排序函数,将3个数排序
func sortThreeNumbers(a: Int64, b: Int64, c: Int64): (Int64, Int64, Int64) {
    var x = a
    var y = b
    var z = c

    // 比较并交换数值,确保 x <= y <= z
    if (x > y) {
        let temp = x
        x = y
        y = temp
    }
    if (x > z) {
        let temp = x
        x = z
        z = temp
    }
    if (y > z) {
        let temp = y
        y = z
        z = temp
    }

    return (x, y, z)
}

main(): Int64 {
    // 输入3个整数
    let input = Console.stdIn.readln().getOrThrow().split(" ")
    let a = Int64.parse(input[0])
    let b = Int64.parse(input[1])
    let c = Int64.parse(input[2])

    // 调用排序函数
    let (x, y, z) = sortThreeNumbers(a, b, c)

    // 输出排序结果
    println("${x}->${y}->${z}")

    return 0
}

代码详解
  1. 手动排序 :通过条件判断,将三个整数按照从小到大的顺序排序。具体步骤是依次比较和交换 x , y , z 的值,确保最终的顺序是 x <= y <= z
  2. 输入解析 :将输入的字符串通过 split 方法分割为数组,并将字符串转换为 Int64 类型的整数。
  3. 格式化输出 :排序完成后,按 -> 连接符拼接排序后的结果,并输出。

示例执行

示例 1

输入:

4 2 8

输出:

2->4->8

示例 2

输入:

10 5 7

输出:

5->7->10

示例 3

输入:

-1 0 1

输出:

-1->0->1

小结

本篇通过实现 L1-010 比较大小 题目,手动实现了对三个整数进行排序的功能。通过条件判断与交换的方式,进一步强化了Cangjie语言中对数据处理的能力。


下篇预告

下一篇将继续进行PTA刷题,讲解 L1-011 A-B 的解题思路与实现,敬请期待 「Mac上学习仓颉20」PTA刷题篇11 - L1-011 A-B


上一篇: 「Mac上学习仓颉18」PTA刷题篇9 - L1-009 N个数求和
下一篇: 「Mac上学习仓颉20」PTA刷题篇11 - L1-011 A-B

作者:SoraLuna

链接:https://www.nutpi.net/thread?topicId=178

來源:坚果派

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


相关推荐
誓约酱4 分钟前
排序算法 -归并排序
数据结构·c++·算法·排序算法
黄焖鸡能干四碗7 分钟前
数字化转型企业架构设计手册(交付版),企业数字化转型建设思路、本质、数字化架构、数字化规划蓝图(PPT原件获取)
大数据·运维·开发语言·架构·需求分析·软件需求
汉克老师22 分钟前
GESP4级考试语法知识(贪心算法(六))
开发语言·数据结构·c++·算法·贪心算法·图论
彩虹糖_haha30 分钟前
Qt桌面应用开发 第五天(常用控件)
开发语言·qt
mahuifa35 分钟前
C++(Qt)软件调试---无法校验pdb时间戳(23)
开发语言·c++·qt
搬砖的小码农_Sky39 分钟前
C语言:链表
c语言·开发语言·链表
TPCloud1 小时前
学习rust语言宏之macro_rules!
开发语言·学习·rust·micro_rules
想退休的搬砖人1 小时前
ESLint的简单使用(js,ts,vue)
开发语言·javascript·vue.js
沐凡星1 小时前
单例模式(Singleton)
开发语言·算法·单例模式
froginwe111 小时前
Swift 可选链
开发语言