输入三个数按从大到小指针
时间: 2023-09-22 10:07:34 浏览: 43
这里给出一个示例代码,可以实现输入三个数并按从大到小的顺序输出:
```c++
#include <iostream>
using namespace std;
void sort(int* a, int* b, int* c) {
if (*a < *b) {
swap(*a, *b);
}
if (*a < *c) {
swap(*a, *c);
}
if (*b < *c) {
swap(*b, *c);
}
}
int main() {
int a, b, c;
cout << "请输入三个整数:" << endl;
cin >> a >> b >> c;
sort(&a, &b, &c);
cout << "从大到小的顺序为:" << c << " " << b << " " << a << endl;
return 0;
}
```
这里使用了指针来实现对输入的三个数进行排序,具体来说,`sort`函数接受三个指向整数的指针,然后根据大小关系交换它们的值,最终实现了按从大到小的顺序排列。在`main`函数中,我们使用`&`来获取变量`a`、`b`、`c`的地址,并将它们作为参数传递给`sort`函数。
相关问题
利用指针实现三个数从大到小输出
可以使用指针数组来实现三个数的排序。具体步骤如下:
1. 定义三个整型变量a、b、c,分别输入三个数的值。
2. 定义一个指针数组p,数组中存放三个指向整型变量的指针。
3. 将p[0]、p[1]、p[2]分别指向a、b、c。
4. 通过比较三个指针所指向的值的大小,交换指针的位置,使得p[0]指向最大值,p[1]指向中间值,p[2]指向最小值。
5. 输出p[0]、p[1]、p[2]所指向的值,即可输出三个数从大到小的顺序。
下面是代码实现:
```c
#include <stdio.h>
int main()
{
int a, b, c;
int *p[3];
printf("请输入三个整数:\n");
scanf("%d%d%d", &a, &b, &c);
p[0] = &a;
p[1] = &b;
p[2] = &c;
// 通过比较三个指针所指向的值的大小,交换指针的位置,使得p[0]指向最大值,p[1]指向中间值,p[2]指向最小值。
if (*p[0] < *p[1]) {
int *temp = p[0];
p[0] = p[1];
p[1] = temp;
}
if (*p[0] < *p[2]) {
int *temp = p[0];
p[0] = p[2];
p[2] = temp;
}
if (*p[1] < *p[2]) {
int *temp = p[1];
p[1] = p[2];
p[2] = temp;
}
printf("从大到小输出三个数为:%d %d %d\n", *p[0], *p[1], *p[2]);
return 0;
}
```
输入三个整数,例如:3 5 2,输出结果为:
```
请输入三个整数:
3 5 2
从大到小输出三个数为:5 3 2
```
用指针方法实现输入三个数按由小到大顺序输出
以下是使用指针方法实现输入三个数按由小到大顺序输出的C语言代码:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void sort(int *a, int *b, int *c) {
if (*a > *b) {
swap(a, b);
}
if (*a > *c) {
swap(a, c);
}
if (*b > *c) {
swap(b, c);
}
}
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;
}
```