来自「南开大学出版的C语言上机试题」· 代码 · 共 16 行

TXT
16
字号
    题目12:已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列, 若产品名称相同, 则按金额从小到大进行排列.最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT5.DAT中。
    注意: 部分源程序存放在PROG1.C中。
    请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
----------------------------------
void SortDat() /*标准答案*/
 {int I,j;
  PRO xy;
  for(I=0;I<99;I++)
  for(j=I+1;j<100;j++)
   if(strcmp(sell[I].dm,sell[j].dm)<0)
{xy=sell[I];sell[I]=sell[j];sell[j]=xy;}
 else if(strcmp(sell[I].dm,sell[j].dm)==0)
 if(sell[I].je<sell[j].je)
 {xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?