指针变量p1、p2、P3分别指向3个整型变量, 经过对指针变量的操作,使得输出*p1、*p2 *p3的值是从大到小的顺序。
时间: 2023-12-05 21:04:03 浏览: 122
好的,我们可以使用指针进行交换指向的变量的值,以实现从大到小输出。
以下是一个实现该功能的 C++ 代码:
```cpp
#include <iostream>
void swap(int* p1, int* p2)
{
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main()
{
int a = 3, b = 7, c = 2;
int *p1 = &a, *p2 = &b, *p3 = &c;
if (*p1 < *p2) {
swap(p1, p2);
}
if (*p1 < *p3) {
swap(p1, p3);
}
if (*p2 < *p3) {
swap(p2, p3);
}
std::cout << *p1 << " " << *p2 << " " << *p3 << std::endl;
return 0;
}
```
在主函数中,我们首先将指针 `p1`、`p2`、`p3` 分别指向 `a`、`b`、`c`。然后,我们使用 `swap` 函数交换指向变量的值,使得 `*p1` 是最大值,`*p3` 是最小值。
最后,我们输出 `*p1`、`*p2`、`*p3` 的值,即得到了从大到小的顺序。
相关问题
不改变整型变量a, b, c的值,利用指针变量*p1,*p2,*p3交换实现上述三个数由大到小的排序和输出
好的,以下是一个示例代码,供你参考:
```c
#include <stdio.h>
void sort(double *p1, double *p2, double *p3);
int main() {
double a, b, c;
printf("请输入三个实数:");
scanf("%lf %lf %lf", &a, &b, &c);
sort(&a, &b, &c);
printf("按从大到小排序后的值为:%lf %lf %lf\n", a, b, c);
return 0;
}
void sort(double *p1, double *p2, double *p3) {
double temp;
if (*p1 < *p2) {
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
if (*p1 < *p3) {
temp = *p1;
*p1 = *p3;
*p3 = temp;
}
if (*p2 < *p3) {
temp = *p2;
*p2 = *p3;
*p3 = temp;
}
}
```
该程序利用指针变量*p1,*p2,*p3交换实现三个数由大到小的排序,并输出结果。在sort函数中,采用了冒泡排序的思想,先将*p1和*p2进行比较,如果*p1小于*p2,则交换*p1和*p2的值;再将*p1和*p3进行比较,如果*p1小于*p3,则交换*p1和*p3的值;最后再将*p2和*p3进行比较,如果*p2小于*p3,则交换*p2和*p3的值。这样就可以将*p1、*p2、*p3按从大到小的顺序排序了,而不改变原来的a、b、c的值。
用c语言不改变整型变量a, b, c的值,利用指针变量*p1,*p2,*p3交换实现上述三个数由大到小的排序和输出。
好的,下面是用C语言利用指针变量*p1,*p2,*p3交换实现整型变量a, b, c由大到小的排序和输出的代码:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a, b, c;
int *p1, *p2, *p3;
printf("请输入三个整数:\n");
scanf("%d %d %d", &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);
printf("排序后:\n%d %d %d\n", *p1, *p2, *p3);
return 0;
}
```
首先,我们定义了三个整型变量a、b和c,以及三个指向整型变量的指针变量p1、p2和p3。
然后,通过scanf函数从键盘输入三个整数,并将它们分别赋值给a、b和c。
接着,将p1指向a所在的内存地址,将p2指向b所在的内存地址,将p3指向c所在的内存地址。
在排序时,我们利用了swap函数来交换指针所指向的值。如果p1所指向的值小于p2所指向的值,就调用swap函数交换p1和p2所指向的值。同理,如果p1所指向的值小于p3所指向的值,就调用swap函数交换p1和p3所指向的值,最后如果p2所指向的值小于p3所指向的值,就调用swap函数交换p2和p3所指向的值。
最后,通过printf函数输出排序后的a、b和c的值。
阅读全文