目录
[C 语言实现](#C 语言实现)
[方法 1: 利用指针方法](#方法 1: 利用指针方法)
[方法 2: 数组来实现对三个数的排序](#方法 2: 数组来实现对三个数的排序)
[方法 3: 使用条件语句直接排序](#方法 3: 使用条件语句直接排序)
[Python 实现](#Python 实现)
[方法 1: swap()函数实现](#方法 1: swap()函数实现)
[方法 2: 使用列表和内置排序方法](#方法 2: 使用列表和内置排序方法)
[方法 3: 使用 sorted() 函数](#方法 3: 使用 sorted() 函数)
[Java 实现](#Java 实现)
[方法 1: 使用条件语句直接排序](#方法 1: 使用条件语句直接排序)
[方法 2: 使用数组和内置排序方法](#方法 2: 使用数组和内置排序方法)
[方法 3: 使用三元运算符](#方法 3: 使用三元运算符)
[方法 4: 使用数学运算](#方法 4: 使用数学运算)
[Js 实现](#Js 实现)
[方法 1: swap() 函数实现](#方法 1: swap() 函数实现)
[方法 2: 使用数组和内置排序方法](#方法 2: 使用数组和内置排序方法)
**题目:**输入3个数a,b,c,按大小顺序输出。
**程序分析:**利用指针方法。
C 语言实现
方法 1: 利用指针方法
objectivec
#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;
}
- swap 函数:用于交换两个整数的值。
- 主函数 :
- 输入三个整数
a
、b
和c
。 - 使用指针
p1
、p2
和p3
指向这三个变量。 - 通过比较和调用
swap
函数对这三个数进行排序。 - 最后输出排序后的结果。
- 输入三个整数
方法 2: 数组来实现对三个数的排序
objectivec
#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;
}
- 数组 :使用一个数组
numbers
来存储三个整数。 - 输入:通过循环读取用户输入的三个整数。
- 冒泡排序:使用嵌套循环实现冒泡排序算法,比较相邻的元素并进行交换,以将数组中的元素按升序排列。
- 输出:最后输出排序后的结果。
方法 3: 使用条件语句直接排序
这种方法通过一系列的条件语句来比较和排序三个数,而不使用循环或数组。
objectivec
#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()函数实现
python
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()
- swap 函数 :定义了一个
swap
函数,用于交换两个值并返回。 - main 函数 :
- 使用
input
函数读取用户输入的三个整数,并使用map
和split
将输入转换为整数。 - 通过条件语句比较并调用
swap
函数对三个数进行排序。 - 最后输出排序后的结果。
- 使用
方法 2: 使用列表和内置排序方法
python
def main():
# 输入三个整数
numbers = list(map(int, input("输入 a, b, c:\n").split()))
# 使用内置的 sort 方法进行排序
numbers.sort()
# 输出结果
print(*numbers)
if __name__ == "__main__":
main()
方法 3: 使用 sorted()
函数
python
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: 使用条件语句直接排序
java
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();
}
}
- 输入 :使用
Scanner
类读取用户输入的三个整数。 - 排序逻辑 :
- 通过一系列的条件判断和交换,确保
a
、b
和c
按照从小到大的顺序排列。
- 通过一系列的条件判断和交换,确保
- 输出:最后输出排序后的结果。
方法 2: 使用数组和内置排序方法
可以将三个数存储在数组中,然后使用 Arrays.sort()
方法进行排序。
java
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: 使用三元运算符
可以使用三元运算符来实现排序逻辑,虽然代码会稍微复杂一些,但仍然可以避免使用数组。
java
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: 使用数学运算
可以通过简单的数学运算来找到最小值和最大值,从而确定中间值。
java
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() 函数实现
javascript
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();
- swap 函数 :定义了一个
swap
函数,用于交换两个值并返回一个包含两个值的数组。 - sortThreeNumbers 函数 :
- 接受三个参数
a
、b
和c
,并使用条件语句对它们进行排序。 - 返回排序后的结果。
- 接受三个参数
- main 函数 :
- 使用
prompt
函数读取用户输入的三个整数,并将其分割并转换为数字。 - 调用
sortThreeNumbers
函数进行排序。 - 使用
console.log
输出排序后的结果。
- 使用
方法 2: 使用数组和内置排序方法
可以将三个数存储在数组中,然后使用 sort()
方法进行排序。
javascript
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();