问题:设计重载函数,必须使用按位异或(^)运算,实现快速交换两个整形变量的和浮点变量的值。
Input: 两个整型数a和b。
两个浮点型变量c和d.
Output: 输出交换后对应的值。
例如:
输入 1 2
1.1 2.1
输出
2 1
2.1 1.1
重点:要多组输入。
#include<iostream>
using namespace std;
int main()
{
int a,b;
double c,d;
int*ap,*bp;
ap=(int*)(&c);
bp=(int*)(&d);
while(cin>>a>>b)
{
a=a^b;
b=a^b;
a=a^b;
while(cin>>c>>d)
{
*ap=(*ap)^*(bp);*bp=(*ap)^*(bp);*ap=(*ap)^*(bp);
ap++;bp++;
*ap=(*ap)^*(bp);*bp=(*ap)^*(bp);*ap=(*ap)^*(bp);
cout<<a<<'\t'<<b<<endl;
cout<<c<<'\t'<<d<<endl;
}
}
}
差不多是这样,自己运行和调试几次,或者根据题目要求进行适当改变。
如有帮助记得点赞与收藏!!!