一个c语言的程序不知道哪里错了,谢谢大家帮忙看一下

来源:百度知道 编辑:UC知道 时间:2024/05/15 12:22:00
#include "stdio.h"
void main()
{int a=3, b=4;
printf("a=%d,b=%d\n",a,b);
change(a,b);
printf("a=%d,b=%d\n",a,b);}
void change(int x,int y)
{int t;
printf("x=%d,y=%d\n",x,y);
t=x;x=y;y=t;
printf("x=%d,y=%d\n",x,y);}

change(int,int)要先声明
把这个函数写到main函数前面就可以了

#include "stdio.h"
void change(int x,int y)
{int t;
printf("x=%d,y=%d\n",x,y);
t=x;x=y;y=t;
printf("x=%d,y=%d\n",x,y);}
void main()
{int a=3, b=4;
printf("a=%d,b=%d\n",a,b);
change(a,b);
printf("a=%d,b=%d\n",a,b);}

change函数是在主函数下面定义的,在引用前应该先声明一下,只要在主函数中加上void change(int x,int y);注意一定要有分号

change函数必须申明才能用。
change函数的变量不是全局变量也不是指针,数据无法返回。最后的一个printf为无效的。

change(int,int)要先声明
如果要做到真正交换的话,可以用指针或引用.有问题和我联系.E-mail:555dengjianghua@sina.com

你的问题不太清楚
第一
将void change(int x, int y);
函数声明放在main函数前面才能使用(先声明后使用的原则)
或者将change函数整体都放在main函数前面.
第二
你可能想使用change函数达到交换a 和b 的作用.
你这样做是无效的
正确的形式是:
void change(int* x, int* y)
{
int t = *x;
*x = *y;
*y = t;
}
调用是使用地址传递
change(&a, &b);

除了上面各位说的申明问题,chang