(1 ) #include <stdio.h> void swap(int *d1,int *d2){ int *temp; temp=d1;d1=d2;d2=temp; void main() int x,y; printf(”请输入x和y的值\n”); scanf(“%d,%d",&x,&y); swap(&x,&y); printf("x=%d,y=%d\n",x,y);”}为什么没有实现交换
时间: 2024-03-23 19:41:50 浏览: 21
这段代码存在几个问题:
1. 函数`swap`的最后缺少一个右花括号`}`,导致代码无法通过编译。
2. 在`swap`函数中,交换两个变量的指针,但是并没有交换两个变量的值,所以在`main`函数中输出的结果和输入的结果是相同的。
为了实现交换两个变量的值,应该在`swap`函数中通过指针来修改变量的值,而不是交换指针的指向。修改后的代码如下:
```
#include <stdio.h>
void swap(int *d1, int *d2){
int temp = *d1;
*d1 = *d2;
*d2 = temp;
}
int main() {
int x, y;
printf("请输入x和y的值:");
scanf("%d,%d", &x, &y);
swap(&x, &y);
printf("x=%d,y=%d\n", x, y);
return 0;
}
```
在`swap`函数中,通过指针来修改`d1`和`d2`指向的变量的值,从而实现了交换两个变量的值。在`main`函数中,我们调用`swap`函数来交换`x`和`y`的值,最后输出交换后的结果。
相关推荐
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)