#include<stdio.h>
void rank_r_salary(char uid[10][5], int r_salary[10]) {
/********** Begin /
int i = 0;
int j;
int max = 0;
int temp;
printf("代号: 实发工资:\n");
for (i = 0; i < 10; i++)
{
max = i;
for (j = i + 1; j < 10; j++)
{
if (r_salary[j] > r_salary[max])
max = j;
}
temp = r_salary[i];
r_salary[i] = r_salary[max];
r_salary[max] = temp;
}
for (i = 0; i < 10; i++) {
printf("%s %d\n",uid[i], r_salary[i]);
}
}
void rank_t_salary_id(char uid[10][5], int t_salary[10],int rid[10]) {
/** Begin **********/
int i = 0;
int j;
int max = 0;
int temp;
printf("代号: 应发工资:名次:\n");
for (i = 0; i < 10; i++) {
printf("%s %d\n",uid[i], t_salary[i],rid[i]);
}
/********** End **********/
}
int main()
{
char a[10][5] = { "U01","U02","U03","U04","U05","U06","U07","U08","U09","U10" };
int b[10] = { 2200,2400,2700,2200,3000,3700,3400,4200,2800,5600 };
int c[10] = { 2003,2218,2449,2030,2760,3418,3133,3964,2589,5284 };
int d[10] = { 0 };
rank_r_salary(a, c);
rank_t_salary_id(a, b, d);
return 0;
}
定义一个结构呀
struct Salary{
char uid[5];
double grossSalary; // 应发
double netSalary; // 实发
};
struct Salary {
char uid[5];
double grossSalary;
double netSalary;
};
int main()
{
Salary salarys[10] = {
{"U01", 2200, 2003}, {"U02", 2400, 2218}, {"U03", 2700, 2449},
{"U04", 2200, 2030}, {"U05", 3000, 2760}, {"U06", 3700, 3418},
{"U07", 3400, 3133}, {"U08", 4200, 3964}, {"U09", 2800, 2589},
{"U10", 5600, 5284}
};
printf("编号\t应发工资\t实发工资\n");
for (int i = 0; i < 10; i++) {
printf("%s\t%0.4lf\t%0.4lf\n", salarys[i].uid, salarys[i].grossSalary, salarys[i].netSalary);
}
return 0;
}
供参考:
#include <stdio.h>
void rank_r_salary(char uid[10][5], int r_salary[10])
{
///********** Begin
int i = 0, j, max = 0, temp, ttmp[10];
char* tmp[10], * ptmp;
for (i = 0; i < 10; i++){
tmp[i] = uid[i];
ttmp[i] = r_salary[i];
}
for (i = 0; i < 10 - 1; i++)
{
max = i;
for (j = i + 1; j < 10; j++)
{
if (ttmp[j] > ttmp[max])
max = j;
}
if (max != i)
{
temp = ttmp[i];
ttmp[i] = ttmp[max];
ttmp[max] = temp;
ptmp = tmp[i];
tmp[i] = tmp[max];
tmp[max] = ptmp;
}
}
printf("代号: 实发工资:\n");
for (i = 0; i < 10; i++) {
printf("%s\t%d\n", tmp[i], ttmp[i]);
}
///********** End *********
}
void rank_t_salary_id(char uid[10][5], int t_salary[10],int rid[10])
{
///** Begin *********
int i, j, tmp;
for (i = 0; i < 10; i++) //rid[]数组初始化
rid[i] = 0;
for (i = 0; i < 10 - 1; i++)
for (j = i + 1; j < 10; j++)
if (t_salary[i] == t_salary[j]) rid[j]++;
for (i = 0; i < 10; i++)
{
for (j = 0, tmp = 1; j < 10; j++)
if (t_salary[i] < t_salary[j])
tmp++;
rid[i] += tmp;
}
printf("代号: 应发工资:名次:\n");
for (i = 0; i < 10; i++) {
printf("%s\t%d\t%d\n", uid[i], t_salary[i], rid[i]);
}
///********** End *********
}
int main()
{
char a[10][5] = { "U01","U02","U03","U04","U05","U06","U07","U08","U09","U10" };
int b[10] = { 2200,2400,2700,2200,3000,3700,3400,4200,2800,5600 };
int c[10] = { 2003,2218,2449,2030,2760,3418,3133,3964,2589,5284 };
int d[10] = { 0 };
rank_r_salary(a, c);
rank_t_salary_id(a, b, d);
return 0;
}