for (i = 0; i < 9; i++) {
printf(" %d\n", r_salary[i]);
}
}
/********** End /
void rank_t_salary_id(char uid[10][5], int t_salary[10], int rid[10]) {
/ Begin **********/
/********** 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;
}
能说的清楚点么?怎么显示了?
void rank_r_salary(char uid[10][5], int r_salary[10]) {
/********** Begin ********/
int i = 0;
int j;
int max=0;
int temp;
for (i = 0; i < 9; 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 < 9; i++) {
printf(" %d\n", r_salary[i]);
}
}
数组越界了,j循环最后执行了j++,所以此时j= 10
r_salary[i] = r_salary[j];改成r_salary[i] = r_salary[j-1];