33,311
社区成员
发帖
与我相关
我的任务
分享
/*定义结构体拼图*/
struct pintu
{
int x;
int y;
};
/*初始化结构体*/
struct pintu pintupt[9]={{57,57},{57,99},{57,141},{99,57},{99,99},{99,141},{141,57},{141,99},{141,141}};
/*数值交换*/
void myswap(int *a,int *b) //形参是引用类型
{ int* temp;
temp=a;
a=b;
b=temp;
}
/*打乱数组的数值*/
srand(time(NULL));//系统不同使用不同的种子
for(j=1;j<10;j++)
{
k=(int)rand()%8;
myswap(&pintupt[j].x,&pintupt[k].x);
myswap(&pintupt[j].y,&pintupt[k].y);
}
void myswap(int *a,int *b) //形参是引用类型
{ int temp;
temp=*a;
*a=*b;
*b=temp;
}
*数值交换*/
void myswap(int *a,int *b) //形参是引用类型
{ int* temp;
temp=a;
a=b;
b=temp;
}
myswap(&pintupt[j].x,&pintupt[k].x);
myswap(&pintupt[j].y,&pintupt[k].y);
给你画个图:
在调用myswap的时候:
a---->printupt[0].x
b---->pritupt[1].x
然后:
变成了:
b---->printupt[0].x
a---->pritupt[1].x
但是,你的pritupt[0]还是以前的,printupt[1]也没变 !
明白??
void myswap(int *a,int *b) //形参是引用类型
{ int temp;
temp=*a;
*a=*b;
*b=temp;
}