#include <stdio.h>
void alter(int*,int*);
int main(void)
{
int x,y;
alter(&x,&y);
printf("%d %d",x,y);
return 0;
}
void alter(int *n,int *m)
{
int t;
if(*n>=*m)
{
t=*n
*n=*n+*m;
*m=*n-*m;
}
else
{
t=*n;
*n+=*m;
*m=*m-*n;
}
}
这个程序哪错了,为什么运行不了
x,y还没赋值呢
你用的啥编译器?你编译运行肯定失败了,看看报错信息。你的代码语法都没对。。。GCC报错很明显的。我修改了,自己对比吧,代码错误很容易查找解决的。
#include <stdio.h>
void alter(int *, int *);
int main(void)
{
int x, y;
alter(&x, &y);
printf("%d %d", x, y);
return 0;
}
void alter(int *n, int *m)
{
int t;
if (*n >= *m)
{
t = *n;
*n = *n + *m;
*m = *n - *m;
}
else
{
t = *n;
*n += *m;
*m = *m - *n;
}
}
第15行末尾缺一个分号,另外你这代码实现的是什么功能,没有任何赋值,只是单纯的对地址进行操作吗