自学内容网 自学内容网

输入3个数a,b,c,按大小顺序输出。- 多语言

目录

C 语言实现

方法 1: 利用指针方法

方法 2: 数组来实现对三个数的排序

方法 3: 使用条件语句直接排序

Python 实现 

方法 1: swap()函数实现

方法 2: 使用列表和内置排序方法

方法 3: 使用 sorted() 函数

Java 实现

方法 1: 使用条件语句直接排序

方法 2: 使用数组和内置排序方法

方法 3: 使用三元运算符

方法 4: 使用数学运算

Js 实现 

方法 1: swap() 函数实现

方法 2: 使用数组和内置排序方法


题目:输入3个数a,b,c,按大小顺序输出。

程序分析:利用指针方法。

C 语言实现

方法 1: 利用指针方法

#include <stdio.h>

// 交换两个整数的函数
void swap(int *s1, int *s2) {
    int t;
    t = *s1; 
    *s1 = *s2; 
    *s2 = t;
}

int main(void) {
    int a, b, c;
    int *p1, *p2, *p3;

    // 输入三个整数
    printf("输入 a, b, c:\n");
    scanf("%d %d %d", &a, &b, &c);

    // 指针指向变量
    p1 = &a;
    p2 = &b;
    p3 = &c;

    // 进行排序
    if (*p1 > *p2) 
        swap(p1, p2);
    if (*p1 > *p3) 
        swap(p1, p3);
    if (*p2 > *p3) 
        swap(p2, p3);

    // 输出结果
    printf("按大小顺序输出:%d %d %d\n", a, b, c);

    return 0;
}
  1. swap 函数:用于交换两个整数的值。
  2. 主函数
    • 输入三个整数 abc
    • 使用指针 p1p2p3 指向这三个变量。
    • 通过比较和调用 swap 函数对这三个数进行排序。
    • 最后输出排序后的结果。

方法 2: 数组来实现对三个数的排序

#include <stdio.h>

int main(void) {
    int numbers[3]; // 用于存储三个整数
    int i, j, temp;

    // 输入三个整数
    printf("输入 a, b, c:\n");
    for (i = 0; i < 3; i++) {
        scanf("%d", &numbers[i]);
    }

    // 使用冒泡排序算法对数组进行排序
    for (i = 0; i < 2; i++) { // 只需进行两轮
        for (j = 0; j < 2 - i; j++) {
            if (numbers[j] > numbers[j + 1]) {
                // 交换
                temp = numbers[j];
                numbers[j] = numbers[j + 1];
                numbers[j + 1] = temp;
            }
        }
    }

    // 输出结果
    printf("按大小顺序输出:%d %d %d\n", numbers[0], numbers[1], numbers[2]);

    return 0;
}
  1. 数组:使用一个数组 numbers 来存储三个整数。
  2. 输入:通过循环读取用户输入的三个整数。
  3. 冒泡排序:使用嵌套循环实现冒泡排序算法,比较相邻的元素并进行交换,以将数组中的元素按升序排列。
  4. 输出:最后输出排序后的结果。

方法 3: 使用条件语句直接排序

这种方法通过一系列的条件语句来比较和排序三个数,而不使用循环或数组。

#include <stdio.h>

int main(void) {
    int a, b, c;

    // 输入三个整数
    printf("输入 a, b, c:\n");
    scanf("%d %d %d", &a, &b, &c);

    // 直接比较并输出
    if (a <= b && a <= c) {
        printf("%d ", a);
        if (b <= c) {
            printf("%d %d\n", b, c);
        } else {
            printf("%d %d\n", c, b);
        }
    } else if (b <= a && b <= c) {
        printf("%d ", b);
        if (a <= c) {
            printf("%d %d\n", a, c);
        } else {
            printf("%d %d\n", c, a);
        }
    } else {
        printf("%d ", c);
        if (a <= b) {
            printf("%d %d\n", a, b);
        } else {
            printf("%d %d\n", b, a);
        }
    }

    return 0;
}

Python 实现 

方法 1: swap()函数实现

def swap(x, y):
    return y, x

def main():
    # 输入三个整数
    a, b, c = map(int, input("输入 a, b, c:\n").split())

    # 使用条件语句进行排序
    if a > b:
        a, b = swap(a, b)
    if a > c:
        a, c = swap(a, c)
    if b > c:
        b, c = swap(b, c)

    # 输出结果
    print(a, b, c)

if __name__ == "__main__":
    main()
  1. swap 函数:定义了一个 swap 函数,用于交换两个值并返回。
  2. main 函数
    • 使用 input 函数读取用户输入的三个整数,并使用 mapsplit 将输入转换为整数。
    • 通过条件语句比较并调用 swap 函数对三个数进行排序。
    • 最后输出排序后的结果。

方法 2: 使用列表和内置排序方法

def main():
    # 输入三个整数
    numbers = list(map(int, input("输入 a, b, c:\n").split()))

    # 使用内置的 sort 方法进行排序
    numbers.sort()

    # 输出结果
    print(*numbers)

if __name__ == "__main__":
    main()

方法 3: 使用 sorted() 函数

def main():
    # 输入三个整数
    numbers = list(map(int, input("输入 a, b, c:\n").split()))

    # 使用 sorted 函数进行排序
    sorted_numbers = sorted(numbers)

    # 输出结果
    print(*sorted_numbers)

if __name__ == "__main__":
    main()

Java 实现

方法 1: 使用条件语句直接排序

import java.util.Scanner;

public class SortThreeNumbers {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 输入三个整数
        System.out.println("输入 a, b, c:");
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt();

        // 使用条件语句进行排序
        if (a > b) {
            int temp = a;
            a = b;
            b = temp;
        }
        if (a > c) {
            int temp = a;
            a = c;
            c = temp;
        }
        if (b > c) {
            int temp = b;
            b = c;
            c = temp;
        }

        // 输出结果
        System.out.println("按大小顺序输出:");
        System.out.println(a + " " + b + " " + c);
        
        scanner.close();
    }
}
  1. 输入:使用 Scanner 类读取用户输入的三个整数。
  2. 排序逻辑
    • 通过一系列的条件判断和交换,确保 abc 按照从小到大的顺序排列。
  3. 输出:最后输出排序后的结果。

方法 2: 使用数组和内置排序方法

可以将三个数存储在数组中,然后使用 Arrays.sort() 方法进行排序。

import java.util.Arrays;
import java.util.Scanner;

public class SortThreeNumbers {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 输入三个整数
        System.out.println("输入 a, b, c:");
        int[] numbers = new int[3];
        for (int i = 0; i < 3; i++) {
            numbers[i] = scanner.nextInt();
        }

        // 使用 Arrays.sort() 进行排序
        Arrays.sort(numbers);

        // 输出结果
        System.out.println("按大小顺序输出:");
        System.out.println(numbers[0] + " " + numbers[1] + " " + numbers[2]);
        
        scanner.close();
    }
}

方法 3: 使用三元运算符

可以使用三元运算符来实现排序逻辑,虽然代码会稍微复杂一些,但仍然可以避免使用数组。

import java.util.Scanner;

public class SortThreeNumbers {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 输入三个整数
        System.out.println("输入 a, b, c:");
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt();

        // 使用三元运算符进行排序
        int min = (a < b) ? (a < c ? a : c) : (b < c ? b : c);
        int max = (a > b) ? (a > c ? a : c) : (b > c ? b : c);
        int mid = a + b + c - min - max; // 中间值

        // 输出结果
        System.out.println("按大小顺序输出:");
        System.out.println(min + " " + mid + " " + max);
        
        scanner.close();
    }
}

方法 4: 使用数学运算

可以通过简单的数学运算来找到最小值和最大值,从而确定中间值。

import java.util.Scanner;

public class SortThreeNumbers {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 输入三个整数
        System.out.println("输入 a, b, c:");
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt();

        // 找到最小值
        int min = a;
        if (b < min) min = b;
        if (c < min) min = c;

        // 找到最大值
        int max = a;
        if (b > max) max = b;
        if (c > max) max = c;

        // 中间值
        int mid = a + b + c - min - max;

        // 输出结果
        System.out.println("按大小顺序输出:");
        System.out.println(min + " " + mid + " " + max);
        
        scanner.close();
    }
}

Js 实现 

方法 1: swap() 函数实现

function swap(x, y) {
    return [y, x]; // 交换并返回
}

function sortThreeNumbers(a, b, c) {
    // 使用条件语句进行排序
    if (a > b) {
        [a, b] = swap(a, b);
    }
    if (a > c) {
        [a, c] = swap(a, c);
    }
    if (b > c) {
        [b, c] = swap(b, c);
    }
    return [a, b, c]; // 返回排序后的结果
}

function main() {
    // 输入三个整数
    const input = prompt("输入 a, b, c(以空格分隔):");
    const [a, b, c] = input.split(' ').map(Number); // 将输入分割并转换为数字

    // 进行排序
    const sortedNumbers = sortThreeNumbers(a, b, c);

    // 输出结果
    console.log(`按大小顺序输出:${sortedNumbers[0]} ${sortedNumbers[1]} ${sortedNumbers[2]}`);
}

// 调用主函数
main();
  1. swap 函数:定义了一个 swap 函数,用于交换两个值并返回一个包含两个值的数组。
  2. sortThreeNumbers 函数
    • 接受三个参数 abc,并使用条件语句对它们进行排序。
    • 返回排序后的结果。
  3. main 函数
    • 使用 prompt 函数读取用户输入的三个整数,并将其分割并转换为数字。
    • 调用 sortThreeNumbers 函数进行排序。
    • 使用 console.log 输出排序后的结果。

方法 2: 使用数组和内置排序方法

可以将三个数存储在数组中,然后使用 sort() 方法进行排序。

function main() {
    // 输入三个整数
    const input = prompt("输入 a, b, c(以空格分隔):");
    const numbers = input.split(' ').map(Number); // 将输入分割并转换为数字

    // 使用 sort 方法进行排序
    numbers.sort((a, b) => a - b);

    // 输出结果
    console.log(`按大小顺序输出:${numbers[0]} ${numbers[1]} ${numbers[2]}`);
}

// 调用主函数
main();

原文地址:https://blog.csdn.net/xinfanyyds/article/details/144330672

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!