#include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
#include"string.h"
typedef struct
{
char dm[4];
char mc[10];
int dj;
int sl;
long int je;
}product;
product *sortDat(product *pd,int num);
product *inPut(int num);
int main()
{ int num,i;
product *pro,*sort;
printf("请输入产品数量:\n");
scanf("%d",&num);
pro=inPut(num);
sort=sortDat(pro,num);
for(i=0;i<num;i++)
{
printf("%s--%s--%d--%d--%ld",sort[i].dm,sort[i].mc,sort[i].dj,sort[i].sl,sort[i].je);
printf("\n");
}
system("pause");
return 0;
}
product *inPut(int num)
{
int i;
product *p;
p=(product *)malloc (num*sizeof(product));
if(p==NULL)
{
printf("内存分配失败!\n");
exit(0);
}
for(i=0;i<num;i++)
{
printf("输入%d产品代码dm:\n",i+1);
scanf("%s",p[i].dm);
fflush(stdin);
printf("请输入%d产品名称mc:\n",i+1);
scanf("%s",p[i].mc);
fflush(stdin);
printf("请输入%d单价dj:\n",i+1);
scanf("%d",&p[i].dj);
printf("请输入%d产品的数量sl;\n",i+1);
scanf("%d",&p[i].sl);
printf("%d产品的金额je:\n",i+1);
p[i].je=p[i].dj*p[i].sl;
printf("%ld\n",p[i].je);
}
return p;
}
product *sortDat(product *pd,int num)
{
product temp;
int i,j,k;
for(i=0;i<num;i++)
{ k=i;
for(j=i+1;j<num;j++)
{
if(strcmp(pd[k].dm,pd[j].dm)>0)
{
temp=pd[k];
pd[k]=pd[j];
pd[j]=temp;
}
else if(strcmp(pd[k].dm,pd[j].dm)==0)
{
if(pd[k].je>pd[j].je)
{
temp=pd[k];
pd[k]=pd[j];
pd[j]=temp;
}
}
}
}
return pd;
}