本题要求将输入的任意3个整数从小到大输出。 输入格式: 输入在一行中给出3个整数,其间以空格分隔。 输出格式: 在一行中将3个整数从小到大输出,其间以“->”相连。
时间: 2024-05-15 11:08:33 浏览: 661
这道题目要求将输入的任意3个整数从小到大输出,可以使用选择排序或者冒泡排序等算法来实现。以下是两种不同的实现方式:
方法一:选择排序
选择排序的基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
具体实现步骤如下:
1. 读入三个整数a、b、c;
2. 比较a、b、c的大小,将最小值存放在x中;
3. 再次比较a、b、c的大小,将次小值存放在y中;
4. 最后将剩余的值存放在z中;
5. 输出x、y、z。
代码如下:
```
#include <stdio.h>
int main()
{
int a, b, c, x, y, z;
scanf("%d %d %d", &a, &b, &c);
if (a <= b && a <= c) {
x = a;
if (b <= c) {
y = b;
z = c;
} else {
y = c;
z = b;
}
} else if (b <= a && b <= c) {
x = b;
if (a <= c) {
y = a;
z = c;
} else {
y = c;
z = a;
}
} else {
x = c;
if (a <= b) {
y = a;
z = b;
} else {
y = b;
z = a;
}
}
printf("%d->%d->%d", x, y, z);
return 0;
}
```
方法二:冒泡排序
冒泡排序的基本思想是从第一个元素开始,依次比较相邻的两个元素,如果前一个元素比后一个元素大,则交换这两个元素,直到最后一个元素。重复以上步骤,直到所有元素都排好序。
具体实现步骤如下:
1. 读入三个整数a、b、c;
2. 将a、b、c按照从小到大的顺序排列;
3. 输出a、b、c。
代码如下:
```
#include <stdio.h>
void swap(int *a, int *b);
int main()
{
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (a > b) {
swap(&a, &b);
}
if (a > c) {
swap(&a, &c);
}
if (b > c) {
swap(&b, &c);
}
printf("%d->%d->%d", a, b, c);
return 0;
}
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
```
阅读全文