正在加载图片...
int temp; temp=*pl; *pl=*p2; *p2 temp; 了提示:如何发现问题? 编译该程序后,发现有一个错误: error C2664:'swap':cannot convert parameter 1 from'int'to 'int 错误发生在调用swap函数的那一行。 从错误信息可知,swp函数的形式参数是指针,但是调用的时候却用了整数变量作为实 在参数,系统的出错信息指出不能将整数转换为指针。改正的方法是将实在参数改成变量、 b的地址。 改正程序后的运行结果示例如图9.1.2所示。 "C:\c-programming\9叭Debug1pg9102k.exe”-回☒ 输入两个整数:,34 这两个数交换后的值是:43 Press any key to continue 图9.1.2pg9102_ok.cpp的运行结果 二、程序扩展 1.打开c:lc-programming\9pg201.cpp,该程序对输入的2个整数按从大到小的顺序输出。 该源程序内容如下: #include <stdio.h> void main(void) int a.b; void swap(int *pl,int *p2); printf"请输入两个整数:")方 scanf("%d%d",&a,&b); if(a<b)swap(&a,&b)月 -174-int temp; temp = *p1; *p1 = *p2; *p2 = temp; } 提示:如何发现问题? 编译该程序后,发现有一个错误: error C2664: 'swap' : cannot convert parameter 1 from 'int' to 'int *' 错误发生在调用 swap 函数的那一行。 从错误信息可知,swap 函数的形式参数是指针,但是调用的时候却用了整数变量作为实 在参数,系统的出错信息指出不能将整数转换为指针。改正的方法是将实在参数改成变量 a、 b 的地址。 改正程序后的运行结果示例如图 9.1.2 所示。 图 9.1.2 pg9102_ok.cpp 的运行结果 二、程序扩展 1.打开 c:\c-programming\9\pg9201.cpp,该程序对输入的 2 个整数按从大到小的顺序输出。 该源程序内容如下: #include <stdio.h> void main(void) { int a,b; void swap(int *p1,int *p2); printf("请输入两个整数:"); scanf("%d%d",&a,&b); if (a<b) swap(&a,&b); - 174 -
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有