查看运行结果,分析原因。#include<stdio.h> void swap2(int *p1,int *p2) { int t; t=*p1; *p1=*p2; *p2=t; } void main() {int a=3; int b=5 ; int *pa=&a,*pb= &b; printf ( "两个数据值为%d %d\n",a,b) ; if(a<b) swap2(pa,pb); printf ("互换后结果为%d %d\n",a,b);}
时间: 2024-01-25 10:03:08 浏览: 68
SeqList.h #include <stdio.h> //包含标准输入输出流的头文件 #include <assert.h
这段代码存在一些问题,编译时会出现以下错误:
1. 函数 main 应该返回一个整型值,而不是 void。
2. 第10行的 printf 函数中使用了中文字符“两个数据值为”,会导致编译错误。
3. 第11行的 if 语句中,应该判断 pa 指向的值和 pb 指向的值的大小关系,而不是 a 和 b 的大小关系。
4. 第12行的 swap2 函数中,第四个字符是一个中文字符“=”,应该修改为英文字符“=”。
修改后的代码如下:
```
#include <stdio.h>
void swap2(int *p1, int *p2) {
int t;
t = *p1;
*p1 = *p2;
*p2 = t;
}
int main() {
int a = 3;
int b = 5;
int *pa = &a, *pb = &b;
printf("两个数据值为%d %d\n", a, b);
if (*pa < *pb)
swap2(pa, pb);
printf("互换后结果为%d %d\n", a, b);
return 0;
}
```
运行结果:
```
两个数据值为3 5
互换后结果为5 3
```
可以看出,程序的功能是通过指针交换两个变量的值。在这个例子中,我们首先定义了两个变量 a 和 b,然后通过指针 pa 和 pb 分别指向这两个变量。接着,我们判断 pa 和 pb 指向的值的大小关系,如果 pa 指向的值小于 pb 指向的值,就调用 swap2 函数交换这两个值。最后,我们输出交换后的结果。
阅读全文