程序运行时若依次输入25,3,40,则输出结果是【 】。 main() { int *p1,*p2,*p3; int i,j,k,t; cin>>i>>j>>k; p1=&i; p2=&j; p3=&k; if(*p1<*p2){t=*p1;*p1=*p2;*p2=t;} if(*p1<*p3){t=*p1;p1=*p3;*p3=t;} if(*p2<*p3){t=*p2;*p2=*p3;*p3=t;} cout<<*p3; }
时间: 2023-08-07 21:05:25 浏览: 33
程序输出结果是 25。
这是一道指针相关的题目。首先在程序开始时,将三个变量 i、j 和 k 的地址分别赋值给指针变量 p1、p2 和 p3。接下来通过 if 语句和指针的取值和赋值操作,将三个数按照从大到小的顺序排序。最后输出最小的数,也就是指向变量 k 的指针变量 p3 所指向的值。
假如输入的是 25,3,40,按照程序的逻辑,第一个 if 语句会将 i 和 j 两个变量的值进行交换,变为 3,25,40。第二个 if 语句则将 i 和 k 进行交换,变为 40,25,3。最后一个 if 语句不用进行任何操作,因为 k 已经是最小的了。所以程序输出的结果是 3。
相关问题
void swap(int *p1,int *p2) { int *temp; *temp=*p1; *p1=*p2; *p2=*temp; }
以下是一个演示如何使用void swap(int *p1,int *p2)函数交换两个指针所指向的值的例子:
```c
#include <stdio.h>
void swap(int *p1, int *p2) {
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main() {
int num1 = 10;
int num2 = 20;
printf("交换前:num1 = %d, num2 = %d\n", num1, num2);
swap(&num1, &num2);
printf("交换后:num1 = %d, num2 = %d\n", num1, num2);
return 0;
}
```
输出结果:
```
交换前:num1 = 10, num2 = 20
交换后:num1 = 20, num2 = 10
```
用c++ 输入3个数a,b,c,按从小到大的顺序输出。【注:输入数据以空格或者回车作为间隔】 */ main( ) void swap(int*p1, int*p2); int n1, n
抱歉,我是一个自然语言处理模型,无法直接运行代码。不过我可以给你提供一个C++代码示例,你可以参考一下:
```
#include <iostream>
using namespace std;
void swap(int* p1, int* p2) {
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main() {
int a, b, c;
cin >> a >> b >> c;
if (a > b) {
swap(&a, &b);
}
if (a > c) {
swap(&a, &c);
}
if (b > c) {
swap(&b, &c);
}
cout << a << " " << b << " " << c << endl;
return 0;
}
```
这个程序首先定义了一个 `swap` 函数,用于交换两个整数的值。然后在 `main` 函数中,通过 `cin` 输入三个整数 `a`、`b`、`c`,然后使用三个 `if` 语句来比较它们的大小,将它们按从小到大的顺序排序。最后使用 `cout` 输出排序后的结果。