利用指针法实现三个数从小到大使用swap语句输出
时间: 2024-05-03 17:18:28 浏览: 65
下面是利用指针法实现三个数从小到大输出的代码,使用了swap函数:
```
#include <stdio.h>
void swap(int *a, int *b);
// 定义swap函数
int main()
{
int a, b, c;
int *p1, *p2, *p3;
// 定义指向三个数的指针
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
p1 = &a; // p1指向a
p2 = &b; // p2指向b
p3 = &c; // p3指向c
if (*p1 > *p2) swap(p1, p2); // 交换p1和p2
if (*p1 > *p3) swap(p1, p3); // 交换p1和p3
if (*p2 > *p3) swap(p2, p3); // 交换p2和p3
printf("三个数从小到大排列为:%d %d %d\n", *p1, *p2, *p3);
return 0;
}
void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
```
运行结果:
```
请输入三个整数:3 1 5
三个数从小到大排列为:1 3 5
```
相关问题
用指针法实现对输入的3个整数排序,按从小到大的顺序输出
以下是用指针法实现对输入的3个整数排序,按从小到大的顺序输出的代码:
```
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a, b, c;
printf("请输入三个整数:\n");
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;
}
```
解释一下代码的思路:
首先,我们通过 `scanf` 函数从标准输入中读取三个整数。然后,我们使用三个 `if` 语句来比较这三个整数的大小,并通过 `swap` 函数来交换它们的位置,使得它们按从小到大的顺序排列。最后,我们使用 `printf` 函数输出排序后的结果。
在 `swap` 函数中,我们使用了指针来交换两个整数的值。指针是 C 语言中非常重要的概念,它可以让我们直接访问内存中的数据,从而实现更加高效和灵活的操作。
输入三个整数从小到大指针
很高兴为您解答问题。以下是输入三个整数从小到大的指针的示例代码:
```c++
#include <iostream>
using namespace std;
int main() {
int a, b, c;
int *p1, *p2, *p3;
cin >> 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);
cout << *p1 << " " << *p2 << " " << *p3 << endl;
return 0;
}
```
在这个示例中,首先声明了三个整型变量 `a`、`b` 和 `c`,以及三个指向整型变量的指针 `p1`、`p2` 和 `p3`。然后通过 `cin` 语句从控制台输入三个整数,并将它们分别赋值给 `a`、`b` 和 `c`。接下来,将 `p1`、`p2` 和 `p3` 分别指向 `a`、`b` 和 `c` 的内存地址。然后使用 `if` 语句来比较指针指向的值的大小,并使用 `swap` 函数来交换指针指向的值的位置,使得 `*p1`、`*p2` 和 `*p3` 分别指向三个整数,从小到大排列。最后,使用 `cout` 语句输出排好序的三个整数。
阅读全文