c语言 对结构体内的数据排序后,存在数据丢失和赋值错误的问题_百度知 ...
发布网友
发布时间:2024-01-14 17:26
我来回答
共1个回答
热心网友
时间:2024-07-30 02:17
把排序函数改成如下试试——
ExpendType *BubbleSortExpend(ExpendType *e){//冒泡排序对月份的收支情况进行排序(从小到大)
int i,j,k;
ExpendType t;//添加个临时结构体变量用于交换
for(i=1;i<7;i++){
k=i;
for(j=i+1;j<=7;j++)
if(e[j].key<e[k].key)
k=j;
if(i!=k){
//e[0].key=e[k].key;
//strcpy(e[0].data,e[k].data);
//e[k]=e[i];
//strcpy(e[k].data,e[i].data);
//e[i]=e[0];
//strcpy(e[i].data,e[0].data);
t=e[i];
e[i]=e[k];
e[k]=t;
}
}
}
这排序法是选择法,不是冒泡法。