求解!C++程序出现问题!
题目:设计重载函数,使用按位异或(^)运算,实现快速交换两个整型变量和浮点型变量的值。下面是我自己打的源代码,但是运行的时候出现了一点问题,如图:
程序运行的时候为什么会多出来两个0?是不是和return有关系?不太懂return,希望能帮助我解决一下,谢谢!
程序代码:#include<iostream>
using namespace std;
int zhengxing(int,int);
double fudian(double,double);
int main()
{
cout<<zhengxing(21,33);
cout<<fudian(123.456,666.666);
return 0;
}
int zhengxing(int a,int b)
{
cout<<"整型变量交换前a="<<a<<"\tb="<<b<<endl;
a=a^b;
b=a^b;
a=a^b;
cout<<"整型变量交换后a="<<a<<"\tb="<<b<<endl;
return 0;
}
double fudian(double a,double b)
{
cout<<"浮点型变量交换前a="<<a<<"\tb="<<b<<endl;
int*ap,*bp;
ap=(int*)(&a);
bp=(int*)(&b);
*ap=(*ap)^*(bp);
*bp=(*ap)^*(bp);
*ap=(*ap)^*(bp);
ap++;
bp++;
*ap=(*ap)^*(bp);
*bp=(*ap)^*(bp);
*ap=(*ap)^*(bp);
cout<<"浮点型变量交换后a="<<a<<"\tb="<<b<<endl;
return 0;
}







