关于直接排序问题,求助大神~~~~
为什么我这段代码,InsertSort()排序后除最后一个r[6].t值是对的以外,其他r[].t都都变成0了?
struct RedType
{
char name;
int t;
};
RedType r[7]; //这个地方我在主函数中已经给r【1】~r【6】赋好值了
strcpy(r[0].name,"zzz");
r[0].t=0; //r[0]用作监视哨未赋值
void InsertSort(RedType r[]) //直接插入排序
{
int i,j;
for(i=2;i<=6;++i)
if((r[i].t)<(r[i-1].t))
{
r[0]=r[i];
r[i]=r[i-1];
for(j=i-2;((r[0].t)<(r[j].t));--j)
r[j+1]=r[j];
r[j+1]=r[0];
}
}
[解决办法]
结构休变量可以直接赋值吗?i am not sure
[解决办法]
1、从你写的程序中可以看出你定义结构体有问题,应该是字符数组或指针类型。
2、
for(j=i-2; r[0].t < r[j].t; --j)改为
for(j=i-1; r[0].t < r[j].t; --j)
R[j+1] = R[0];
}
}