2101 : 程序改错 - 两数交换(二)
时间限制: 1 Sec 内存限制: 128 MB
题目描述
上次编写两数交换函数失败后,小明又写了一个两数交换函数,这次他知道用指针了,可是还是没有成功,请修改后提交。
#include <stdio.h>
void swap(int *a,int *b)
{
int *t = a;
a = b;
b = t;
}
int main()
{
int a,b;
while(scanf("%d %d",&a,&b) != EOF)
{
swap(&a,&b);
printf("%d %d\n",a,b);
}
return 0;
}
输入
输入包括多行数据,每行包括两个整数,用空格隔开
输出
将输入的两个整数值交换之后输出并换行
样例输入
1 2
3 4
样例输出
2 1
4 3
提示
来源
#include <stdio.h>
void swap(int *a,int *b)
{
int t;
t = *a;
*a = *b;
*b = t;
}
int main()
{
int a,b;
while(scanf("%d %d",&a,&b) != EOF)
{
swap(&a,&b);
printf("%d %d\n",a,b);
}
return 0;
}
原代码中,交换的是a和b的地址,而值并没有交换。
修改后,将a和b的值进行了交换。