试题要求如图10.5所示。
部分源程序内容如下:
#include<stdio.h>
#include<mem.h>
#include<string.h>
#include<stdlib.h>
#define MAX 100
typedef struct
char dm[5]; /*产品代码*/
char mc[11]; /*产品名称*/
int dj; /*单价*/
int s1; /*数量*/
long je; /*金额*/
PRO;
PRO sell[MAX];
void ReadDat();
void WriteDat();
void SortDat()
void main()
mem$et(sell, 0, siZeOf(Sell));
ReadDat();
SortDat();
WriteDat();
void ReadDat()
FTLE *fp;
char str[80], ch[11];
int i;
fp=fopen("K:\\k06\\35010006\\IN.DAT", "r");
for(i=0; i<100; i++)
fgets(str, 80, fp);
memcpy(sell[i].dm, str, 4);
memcpy(sell[i].mc, str+4, 10);
memcpy(ch, str+14, 4); ch[4]=0;
sell[i].dj=atoi(ch);
memcpy(ch, str+18, 5); ch[5]=0;
Sell[i].sl=atoi(ch);
sell[i].je=(long)sell[i].dj *sell[i].sl;
fclose(fp);
void WriteDat()
FILE *fp;
int i;
fp=Eopen("K:\\k06\\35010006\\OUT.DA2", "w");
for(i=0; i<100; i++)
fprintf(fp, "%s%s%4d%5d%10ld\n", sell[i].dm, sell[i].mc, sell[i].dj, sell[i].sl, sell[i].je);
fclose(fp);