从键盘输入三个整数abc,按从大到小的顺序输出要求用指针实现数据的交换
时间: 2023-12-15 21:03:20 浏览: 32
可以参考以下代码实现:
```c
#include <stdio.h>
void swap(int *p1, int *p2) {
int tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
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\n", a, b, c);
return 0;
}
```
这里的 `swap` 函数用于交换两个整数的值,传入指针参数可以修改指针所指向的值。在 `main` 函数中,我们首先读入三个整数,然后通过一系列比较和交换操作,将它们按从大到小的顺序排列,最后输出即可。
相关问题
使用C语言实现:从键盘输入三个数a b c按大小顺序输出,要求用指针实现数据的交换
下面是使用指针实现三个数按照大小顺序输出的C语言代码:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a, b, c;
printf("请输入三个整数:");
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("按大小顺序输出:\n%d %d %d", a, b, c);
return 0;
}
```
首先定义了一个 `swap` 函数,用于交换两个整数。在 `main` 函数中,先通过 `scanf` 函数从键盘输入三个整数,然后使用冒泡排序的方法将它们按照大小顺序排列。具体来说,先比较 `a` 和 `b` 的大小,如果 `a` 大于 `b`,则交换它们的值;然后比较 `a` 和 `c` 的大小,如果 `a` 大于 `c`,则交换它们的值;最后比较 `b` 和 `c` 的大小,如果 `b` 大于 `c`,则交换它们的值。最终输出排好序的三个整数。在交换值的过程中,使用了指针来实现。
用C语言指针针写一个从键盘随机输入三个整数按由小到大的顺序输出
好的,以下是用C语言指针实现的代码:
```c
#include <stdio.h>
void sort(int *a, int *b, int *c)
{
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;
}
}
int main()
{
int a, b, c;
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
sort(&a, &b, &c);
printf("从小到大排序后的结果是:%d %d %d\n", a, b, c);
return 0;
}
```
这段代码首先定义了一个 `sort` 函数,它接受三个整数指针作为参数,并将它们按由小到大排序。然后在主函数中,我们读取三个整数,调用 `sort` 函数进行排序,最后输出排序后的结果。
需要注意的是,在调用 `sort` 函数时,我们需要传递三个整数的地址,即 `&a`, `&b`, `&c`,这样 `sort` 函数才能修改它们的值。在函数内部,我们使用 `*a`、`*b`、`*c` 来访问这三个整数的值。
你可以将这段代码复制到你的编辑器中,并编译运行它。它会读取三个整数,并按由小到大的顺序输出它们。