一道用VC++编的三级网络的上机试题

来源:百度知道 编辑:UC知道 时间:2024/05/17 04:06:59
按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列:
void SortDat()
{ int i,j,k;
char ch;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
{
if(sell[i].mc<sell[j].mc)
{
ch=sell[i].mc;
sell[i].mc=sell[j].mc;
sell[j].mc=ch;
}
else if(sell[i].mc==sell[j].mc)
if(sell[i].je<sell[j].je)
{
ch=sell[i].je;
sell[i].je=sell[j].je;
sell[j].je=ch;
}

}
}
为什么我在查看out.dat文件的时候我看见:文件从上到下,代码和金额是从小到大的顺序排列的?我很奇怪.

错误太多了,sell[i].mc和sell[i].je哪个是代码,代码要用STRCMP(...,...)比较,不能直接比较,这肯定出问题了。ch是字符,ch=sell[i].mc;和ch=sell[i].je;不可以 的,因为一个是INT一个是CHAR。所以运行的肯定是错的