|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 100
typedef struct
{
char dm[5]; /* 产品代码 */
char mc[11]; /* 产品名称 */
int dj; /* 单价 */
int sl; /* 数量 */
long je; /* 金额 */
} PRO;
PRO sell[MAX];
void ReadDat();
void WriteDat();
void SortDat()
{
int i, j, len;
PRO tmp;
len = sizeof(tmp);
memset((PRO *) & tmp, 0, len);
for(i = 0; i < 100; i++)
for(j = i + 1; j < 100; j++)
{
if(strcmp(sell[i].dm, sell[j].dm) < 0 || (sell[i].je < sell[j].je && strcmp(sell[i].dm, sell[j].dm) == 0))
{
memcpy((PRO *) & tmp, (PRO *) & sell[i], len);
memcpy((PRO *) & sell[i], (PRO *) & sell[j], len);
memcpy((PRO *) & sell[j], (PRO *) & tmp, len);
}
}
}
void main()
{
memset(sell, 0, sizeof(sell));
ReadDat();
SortDat();
WriteDat();
}
void ReadDat()
{
FILE *fp;
char str[80], ch[11];
int i;
fp = fopen("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 = fopen("out.dat", "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);
}
|
|