#include <stdio.h>
#include <stdlib.h>
//阅读程序,在读懂程序的基础上运行程序,
//观察运行结果,发现其中出现的问题,并解决:
//修改BubbleSort函数(函数头也可修改),使得
//在对成绩排序时,各成绩对应的人名也做相应调整
//typedef int INT;
//typedef char * PCHAR;
typedef char STR[10];
typedef STR * PSTR;
//输入成绩的函数
float* inputScore(int* n)
{
int m, i;
printf("请输入人数:");
scanf("%d", n);
float *score =NULL;
m = *n;
score = (float *)malloc(
sizeof(float)*m);
for (i = 0; i < m; ++i)
{
scanf("%f", &score[i]);
}
return score;
}
STR* inputNames(int n)
{
STR* s=NULL;
int i;
s=(STR* )malloc(sizeof(STR)*n);
while(getchar()!='\n');
printf("请输入%d个名字(一行一个):\n",n);
for(i=0;i<n;i++)
gets(s[i]);
return s;
}
void printRecord(STR *s,float a[], int m)
{
int i;
for (i = 0; i < m; ++i)
printf("%s\t%-6.1f\n",s[i],a[i]);
putchar('\n');
}
void printNames(STR s[], int n)
{ int i;
for(i=0;i<n;i++)
puts(s[i]);
return;
}
//修改这个函数(函数头也可修改),使得
//在对成绩排序时,各成绩对应的人名也做相应调整
void BubbleSort(float a[], int n)
{
int i,j;
float t;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(a[j]<a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1]=t;
}
}
}
}
int main()
{
int n;
float *p = inputScore(&n);
STR * names=NULL;
names = inputNames(n);
printRecord(names,p, n);
//printNames(names, n);
BubbleSort(p,n);
printRecord(names,p, n);
return 0;
}