用调用交换两个整型变量的值,求找错
#include<stdio.h> main() { int a=20,b=30; change(a,b); printf("a=%d b=%d\n",a,b); } int change(int x,int y) { int t; t=x;x=y;y=t; return 0; } 求指教
追问:运行了,貌似还不行啊
#include<stdio.h> main() { int a=20,b=30; change(a,b); printf("a=%d b=%d\n",a,b); } int change(int x,int y) { int t; t=x;x=y;y=t; return 0; } 求指教
追问:运行了,貌似还不行啊
其他:楼上说的对,传入引用才能改变变量的值,int change(int &x, int &y) 首先看你这个程序:
#include<stdio.h>
main()
{
int a=20,b=30;
change(a,b);
printf("a=%d b=%d\n",a,b);
}
int change(int x,int y)
{
int t;
t=x;x=y;y=t;
return 0;
}
我感觉你是想用C语言写,而不是采用C++。所以你想通过函数交换数值,只能用C语言的指针,引用是C++中的新特性。
我看你的程序,存在两个错误,一个是在main函数前没有函数声明,二是函数没有采用指针,三是函数main没有注明返回值类型。
这样修改就可以了:
#include<stdio.h>
int change(int *x, int *y);
int main()
{
int a=20,b=30;
change(a,b);
printf("a=%d b=%d\n",a,b);
}
int change(int * x,int * y)
{
int t;
t = *x;
*x = *y;
*y = t;
return 0;
}
补充说明一点:
这个change函数需要做的是交换两个数值,其实不需要返回值,可以写成这样:
void change (int * x, int * y)
{
int t;
t = *x;
*x = *y;
*y = t;
} 你没声明。。。而且你交换的只是x和y的值,函数退出后x,y的值会释放掉 #include<stdio.h>
int change(int &x,int &y);
void main()
{
int a=20,b=30;
change(a,b);
printf("a=%d b=%d\n",a,b);
}
int change(int &x,int &y)
{
int t;
t=x;x=y;y=t;
return 0;
}
你的程序有三个小问题,1用函数调用的方式必须用引用才能改变变量的值,2你的main函数没有指明类型,3函数调用在函数定义之前的话必须提前声明 希望采纳 谢谢
上一个:C++小问题 高分在线求解答!!!
下一个:C++ 指针数组删除报错