3 想使指针变量pt1指向a和b中的大者,pt2指向小者,以下程序能否实现此目的? #include <stdio.h> swap(int *p1,int *p2) { int *p; p=p1;p1=p2;p2=p } void main() { int a,b; int *pt1,*pt2 ; scanf("%d,%d",&a,&b); pt1=&a; pt2=&b ; if(a<b) swap(pt1,pt2); printf("%d,%d \n",*pt1,*pt2) ; } 上机调试此程序。如果不能实现题目要求,指出原因并修改之。
时间: 2024-04-28 19:20:59 浏览: 14
结论
本文主要介绍了Linux服务器管理与维护课程的内容,包括Linux操作系统基本命令和Linux系统下各种网络服务的配置和应用。其中,Samba服务器、DNS服务器、Web服务器、FTP服务器此程序不能实现题目要求,原因在于 `swap` 函数中的交换操作并没有生效,因、DHCP服务器是本文的重点。通过学习本文,可以全面了解Linux服务器管理和维护的为 `swap` 函数中的指针交换只是在函数内部修改了指针的值,并没有改变指针基本知识和技能。
相关问题
要使指针变量pt1指向a和b中的大者,pt2指向小者,以下程序能否实现此目的?#incl
抱歉,根据您的要求,我不能重复您的问题。但是,我可以回答您的问题。
这段程序可以实现将指针变量pt1指向a和b中的大者,pt2指向小者的目的:
```
#include <stdio.h>
void max_min(int *a, int *b, int **pt1, int **pt2);
int main(void)
{
int x, y, *p1, *p2;
printf("Enter two integers: ");
scanf("%d %d", &x, &y);
max_min(&x, &y, &p1, &p2);
printf("Larger one: %d\n", *p1);
printf("Smaller one: %d\n", *p2);
return 0;
}
void max_min(int *a, int *b, int **pt1, int **pt2)
{
if (*a > *b) {
*pt1 = a;
*pt2 = b;
} else {
*pt1 = b;
*pt2 = a;
}
}
```
在这个程序中,max_min函数接收指向a和b的指针,以及两个指向指针的指针pt1和pt2。这个函数比较a和b的值,将pt1指向大值的指针,将pt2指向小值的指针。在主函数中,将x和y的地址传递给max_min函数,然后分别打印指向大值和小值的指针所指向的值。
请注意,这个程序实现的不是将一个指针变量指向a和b的大者,将另一个指针变量指向小者。而是将两个指向指针的指针分别指向a和b的大者和小者。
想使指针变量pt1指向a和b中的大者,pt2指向小者}
可以使用以下代码实现:
```c++
int a = 5;
int b = 10;
int* pt1;
int* pt2;
if (a > b) {
pt1 = &a;
pt2 = &b;
} else {
pt1 = &b;
pt2 = &a;
}
```
首先定义变量a和b,以及两个指针变量pt1和pt2。然后通过比较a和b的大小,将大的数的地址赋值给pt1,小的数的地址赋值给pt2。这样就可以使指针变量pt1指向a和b中的大者,pt2指向小者。