指针变量p1、p2、P3分别指向3个整型变量, 经过对指针变量的操作,使得输出*p1、*p2 *p3的值是从大到小的顺序。
时间: 2023-12-05 20:04:03 浏览: 142
好的,我们可以使用指针进行交换指向的变量的值,以实现从大到小输出。
以下是一个实现该功能的 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` 的值,即得到了从大到小的顺序。
相关问题
用codeblocks C语言 完成用指针变量p1,p2分别记录2门课的成绩a,b,并用*p1,*p2计算a,b的均值m,用指针变量p3记录均值并输出均值。
在Code::Blocks环境下,你可以通过以下几个步骤完成这个C语言程序:
```c
#include <stdio.h>
int main() {
// 定义两个课程成绩变量
int a = 85, b = 90;
// 使用指针记录成绩
int *p1 = &a;
int *p2 = &b;
// 计算平均值
float m = (*p1 + *p2) / 2.0; // 使用解引用运算符(*)获取数值
// 创建一个新的指针记录均值
float *p3 = &m;
// 输出均值
printf("The average score is: %.2f\n", *p3); // 再次使用解引用输出指针指向的值
return 0;
}
```
在这个程序中,我们首先声明了两个整数变量`a`和`b`,然后定义了两个指针`p1`和`p2`,它们都指向这两个变量。接着我们计算了`a`和`b`的平均值并将结果存储在一个浮点型变量`m`中,再创建了一个新的指针`p3`指向`m`。最后,使用`printf`函数输出指针`p3`所指向的均值。
有3个整型变量i、j、k,请编写程序,设置3个指针变量p1、p2、p3,分别指向i、j、k。然后通过指针变量使i、j、k的值顺序交换、
可以使用以下程序实现指针变量交换i、j、k的值:
```c++
#include <iostream>
using namespace std;
int main() {
int i = 1, j = 2, k = 3;
int *p1 = &i, *p2 = &j, *p3 = &k;
// 输出交换前的值
cout << "交换前:" << i << " " << j << " " << k << endl;
// 通过指针变量交换i、j、k的值
int temp = *p1;
*p1 = *p2;
*p2 = *p3;
*p3 = temp;
// 输出交换后的值
cout << "交换后:" << i << " " << j << " " << k << endl;
return 0;
}
```
输出结果为:
```
交换前:1 2 3
交换后:2 3 1
```
阅读全文