【发布时间】:2015-10-18 05:11:56
【问题描述】:
这个问题很简单,但我越搜索越困惑。我应该从我编写的结构代码中快速排序一个变量。但是,我不明白我应该如何快速排序像 em.fName 这样的变量,如果它在循环的每次迭代中都发生了变化。我查找的每个示例似乎都对 int 变量或预定义字符数组进行排序。有人能指出我从哪里开始和/或在 C 中举一个例子吗?谢谢,非常感谢。我有posted the full code here 因为我不想把帖子弄得乱七八糟。
typedef struct EmployeeRecord
{
STR21 lName;
STR11 fName;
char fullName[33];
float hrs;
float pay;
float dfr;
float gross;
float ft;
float st;
float ssit;
float net;
} EmployeeRecord;
int main(void)
{
EmployeeRecord em;
do
{
counter++;
em.dfr = em.ft = em.st = em.ssit = em.gross = em.hrs = em.pay = em.net = ovrtHrs = 0; //initalized to 0 and then changed by function if greater than 0
printf("Please enter your FIRST name: ");
scanf("%s",fName);
printf("Please enter your LAST name: ");
scanf("%s",lName);
printf("Enter your payrate: ");
scanf("%f",&em.pay);
printf("Please enter your total hours: ");
scanf("%f",&em.hrs);
printf("Please enter the amount of deferred earnings: ");
scanf("%f",&em.dfr);
strcpy(fullName,lName); // combine last + ", " + first into full
strcat(fullName,", ");
strcat(fullName,fName);
payTotal = payTotal + em.pay;
dfrTotal = dfrTotal + em.dfr;
em.gross = grossModule(&em.hrs,em.pay,&ovrtHrs); // call 3.4
CalculateTaxes(&em.gross,&em.dfr,&em.ft,&em.st,&em.ssit); // call 3.0
em.net = netModule(&em.gross,&em.ft,&em.st,&em.ssit); // cal 3.5
hoursTotal = hoursTotal + em.hrs;
overtimeTotal = overtimeTotal + ovrtHrs; // TOTALS
grossTotal = grossTotal + em.gross;
stateTotal = stateTotal + em.st;
ssiTotal = ssiTotal + em.ssit;
netTotal = netTotal + em.net;
fedTotal = fedTotal + em.ft;
fprintf(myreport,REPORTCOLUMNFORMATS,em.fullName,em.pay,em.hrs,em.gross,em.ft,em.ssit,em.net);
fprintf(myreport,REPORTCOLUMNFORMATS3,ovrtHrs,em.st,em.dfr);
printf("Would you like to continue, y/n? \n");
scanf("%s",&ask);
}while(ask == 'y' || ask == 'Y');
【问题讨论】:
-
every irritation of the loop哈哈。 -
排序并...放在哪里?
-
@Jashaszun 哎呀,意思是迭代,我的坏笑。
-
准备一个可以保存所有记录的数组。
-
@Dan 在任何情况下,为了对某些东西进行排序,您都需要将这些东西存储在某个地方。所以你需要把你的数据放在一个数组中。排序后的数据也应该是一个数组,并且由于 qsort 不是就地算法,它应该是另一个数组。从这里只需转到您的算法教科书或谷歌,然后找到排序算法。并实施它。
标签: c algorithm sorting quicksort