输入3个正整数,按由大到小的顺序输出,要求使用指针实现
时间: 2023-03-28 10:00:53 浏览: 73
好的,这个问题可以回答。请看下面的代码:
```c
#include <stdio.h>
void sort(int* a, int* b, int* c) {
if (*a < *b) {
int t = *a;
*a = *b;
*b = t;
}
if (*a < *c) {
int t = *a;
*a = *c;
*c = t;
}
if (*b < *c) {
int t = *b;
*b = *c;
*c = t;
}
}
int main() {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
sort(&a, &b, &c);
printf("%d %d %d\n", a, b, c);
return ;
}
```
这个程序中,我们定义了一个 `sort` 函数,它接受三个指针参数,分别指向三个整数。函数的作用是将这三个整数按从大到小的顺序排列。在 `main` 函数中,我们先读入三个整数,然后调用 `sort` 函数,最后按要求输出这三个整数。
相关问题
使用指针编程实现:输入3个正整数,按由小到大顺序输出
下面是使用指针编程实现输入3个正整数,按由小到大顺序输出的示例代码:
```
#include <stdio.h>
void swap(int *a, int *b); // 声明交换两个整数的函数
int main() {
int a, b, c;
int *pa = &a, *pb = &b, *pc = &c; // 定义3个指针变量,分别指向a、b、c
printf("请输入三个正整数:\n");
scanf("%d%d%d", pa, pb, pc);
if (*pa > *pb) swap(pa, pb); // 如果a > b,交换a和b的值
if (*pa > *pc) swap(pa, pc); // 如果a > c,交换a和c的值
if (*pb > *pc) swap(pb, pc); // 如果b > c,交换b和c的值
printf("按由小到大顺序输出:\n");
printf("%d %d %d\n", *pa, *pb, *pc);
return 0;
}
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
运行程序后,输入3个正整数,程序就会按由小到大的顺序输出它们。
使用指针编程实现,输入三个正整数,由小到大顺序输出
以下是使用指针编程实现输入三个正整数,由小到大顺序输出的示例代码:
```c++
#include <iostream>
using namespace std;
void sort(int *a, int *b, int *c);
int main() {
int x, y, z;
cout << "请输入三个正整数: ";
cin >> x >> y >> z;
sort(&x, &y, &z);
cout << "排序后的结果为: " << x << " " << y << " " << z << endl;
return 0;
}
void sort(int *a, int *b, int *c) {
int temp;
if (*a > *b) {
temp = *a;
*a = *b;
*b = temp;
}
if (*a > *c) {
temp = *a;
*a = *c;
*c = temp;
}
if (*b > *c) {
temp = *b;
*b = *c;
*c = temp;
}
}
```
首先,我们定义了一个 `sort` 函数,该函数接受三个指向整数的指针参数,用于对这三个整数进行排序。在 `main` 函数中,我们首先声明了三个整数变量 `x`、`y` 和 `z`,并通过 `cin` 输入了它们的值。接着,我们调用 `sort` 函数,并将三个整数的地址传递给它。最后,我们按照顺序输出这三个整数的值。
在 `sort` 函数中,我们使用了指针的运算,将指针所指向的值进行比较和交换。具体来说,我们首先比较 `a` 和 `b`,如果它们的值不是按照顺序排列的,则交换它们的值。接着,我们比较 `a` 和 `c`,以及 `b` 和 `c`,并分别进行交换操作。最终,三个整数的值就被按照从小到大的顺序排列了。