#include<stdio.h>
#include<stdlib.h>
#include<math.h>
struct complex
{
double r,i;
complex() {r=0,i=0;}
complex(double r1,double i1): r(r1),i(i1){}
};
void swap(complax*a ,complax*b)
{
}
int main()
{
complex a1(1,2) , a2(4,6);
swap(a1,a2)
return 0
}
想通过swap交换a1 a2 的值
帮忙实现一下swap函数
void swap(complex &a, complex &b) {
complex tmp;
tmp = a;
a = b;
b = tmp;
}
tmp是备份变量,利用它交换两个结构体其实和交换两个变量也是一样的,只不过不能在数值上操作。
void swap(complex &a, complex &b)
{
complex temp = a;
a = b;
b = temp;
}
void swap(compex *a, complex*b){
double tr, ti;
tr = a->r;
ti = a->i;
a->r = b->r;
a->i = b->i;
b->r = tr;
b->i = ti;
}
直接使用 std::swap 即可:
#include<algorithm>
using std::swap;
swap(a1, a2);
struct complex *p;
p = b;
b = a;
a = p;
void swap(complex &a, complex &b)
{
complex temp;
temp = a;
a = b;
b = temp;
}
void swap(complax*a ,complax*b)
{
comlax t;
t=a;
a=b;
b=t;
}
c语言的结构体是不能写方法的吧,不是C#才有的吗