C 具有两个结构变量的结构的排序数组?

C 具有两个结构变量的结构的排序数组?,c,structure,C,Structure,我在排序以下数组时遇到问题 如何根据temp\u var[]和temp\u var[]的交易日期和交易金额对temp\u var[]数组进行排序 typedef struct { char trans_d [2], trans_amount [10], trans_me [8], account

我在排序以下数组时遇到问题

如何根据
temp\u var[]和
temp\u var[]的交易日期和交易金额对
temp\u var[]数组进行排序

typedef struct      
{
    char    trans_d                  [2],      
            trans_amount            [10], 
            trans_me                 [8],
            account                 [10], 
            trans                  [16],
            trade_date              [12],
            setnt_date              [12];
} what_if;

what_if  temp_var[100];

void swap(what_if *a, what_if *b)
{
    tmp = *a;
    *a = *b;
    *b = tmp;
}


void bubbleSort(what_if a[], int size)
{
    for (i=0; i<size-1; i++)
    {
        for (j=size-1; j>i; j--)  
            if (strcmp(a[j].trade_date , a[j-1].trade_date) < 0 )
                swap(&a[j], &a[j-1]);
    }
}

int main()
{
    //after read the structure values
    bubbleSort(temp_var,t_count);
}
typedef结构
{
char trans_d[2],
交易金额[10],
trans_me[8],
账户[10],
反式[16],
交易日期[12],
设定日期[12];
}如果;
如果临时变量[100];
无效掉期(假设为a,假设为b)
{
tmp=*a;
*a=*b;
*b=tmp;
}
void bubbleSort(如果是[],整数大小,该怎么办)
{
对于(i=0;ii;j--)
if(strcmp(a[j].交易日期,a[j-1].交易日期)<0)
掉期交易(&a[j]、&a[j-1]);
}
}
int main()
{
//读取结构值后
bubbleSort(温度变量、t计数);
}

如果第一个排序标准相等,只需检查第二个排序标准。请检查trans_amount字段是否可以通过这种方式进行比较。代码可以更短,我的目的是演示如何工作

int first = strcmp(a[j].trade_date , a[j-1].trade_date);
 if ( first == 0 ) {
     if ( strcmp(a[j].trans_amount , a[j-1].trans_amount) < 0 )
         swap(&a[j], &a[j-1]);
 }
 else if ( first < 0 ) {
    swap(&a[j], &a[j-1]);
 }
int first=strcmp(a[j].交易日,a[j-1].交易日);
如果(第一个==0){
if(strcmp(a[j].交易金额,a[j-1].交易金额)<0)
掉期交易(&a[j]、&a[j-1]);
}
else if(第一个<0){
掉期交易(&a[j]、&a[j-1]);
}

您的问题是什么?您提供的代码是否没有编译或有运行时错误?这是一个家庭作业吗?如果是这样,你应该指出它。嗨,puddingfox,它在交易日得到了排序,你觉得那里有什么错误吗。(日期像20100608)在那里我根据单个结构变量排序,现在我需要使用两个结构变量。