帮我读c的程序
void s_sort(struct xscj stud[])
{
int i,j;
extern s_disp();
struct xscj stu[30],chang;
for(i=0;i<reccount;i++)
stu[i]=stud[i];
for(i=0;i<reccount;i++)
for(j=i+1;j<reccount;j++)
if (stu[i].zf<stu[j].zf)
{
chang=stu[i];
stu[i]=stu[j];
stu[j]=chang;
}
s_disp(stu);
}
参考答案:void s_sort(struct xscj stud[]) // 函数返回值类型、函数名称、函数参数
{
int i,j; // 声明两个整形变量
extern s_disp(); // 声明一个外部函数
struct xscj stu[30],chang; // 声明两个xscj数据类型变量,一个是数组
for(i=0;i<reccount;i++) // for循环,执行次数为:reccount
stu[i]=stud[i]; // 将函数参数中的值赋值给局部变量
for(i=0;i<reccount;i++) // for循环,执行次数为:reccount
for(j=i+1;j<reccount;j++) // for循环,执行次数为:reccount-i-1
if (stu[i].zf<stu[j].zf) // 对局部变量结构体数据的zf字段用冒泡排序法进行判断
{
chang=stu[i]; // 1. 保存结构体数据到局部临时变量
stu[i]=stu[j]; // 2. 准备交换数据
stu[j]=chang; // 3. 这三行完成的功能是交换数据
}
s_disp(stu); // 调用外部函数s_disp打印局部变量stu的信息
}