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)在那里我根据单个结构变量排序,现在我需要使用两个结构变量。