简单结构体的应用(商品排序C语言)

#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      {
         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       {
         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     { k=i;
        for(j=i+1;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;
}
             
         









你可能感兴趣的:(C语言,结构体)