#define?STUDENT_NUM?10
typedef?struct
{
int?no;?/*?學號?*/
char?name[16];/*?名字?*/
float?fraction;?/*?成績?*/
}StudentInfo;
void?outputFraction(int?student_num,?StudentInfo?*?student_list)
{
int?i;
if?(student_list?==?NULL)?return;
for?(i?=?0;?i?<?student_num;?i++)
{
printf("學生:%s?C語言成績:%f\n",?student_list[i].name,?student_list[i].fraction);
}
}
void?bubbleSort(int?student_num,?StudentInfo?*?student_list)
{
int?i,?j;
StudentInfo?temp;
if?(student_list?==?NULL)?return;
for?(j?=?0;?j?<?student_num?-?1;?j++)
{
for?(i?=?0;?i?<?student_num?-?1?-?j;?i++)
{
if?(student_list[i].fraction?<?student_list[i?+?1].fraction)
{
temp?=?student_list[i];
student_list[i]?=?student_list[i?+?1];
student_list[i?+?1]?=?temp;
}
}
}
}
float?varFraction(int?student_num,?StudentInfo?*?student_list)
{
int?i;
float?all;
all?=?0.0f;
if?(student_list?==?NULL)?return?all;
for?(i?=?0;?i?<?student_num;?i++)
{
all?+=?student_list[i].fraction;
}
return?all?/?student_num;
}
StudentInfo?searchFraction(int?student_num,?StudentInfo?*?student_list,?int?no)
{
int?i;
StudentInfo?s;
if?(student_list?==?NULL)?return?s;
for?(i?=?0;?i?<?student_num;?i++)
{
if?(no?==?student_list[i].no)
{
s?=?student_list[i];
break;
}
}
return?s;
}
int?main(int?argc,?char?*argv[])
{
int?student_num;
StudentInfo?student_list[STUDENT_NUM];
StudentInfo?student;
int?i;
float?var_f;
int?no;
student_num?=?STUDENT_NUM;
/*?輸入信息?*/
printf("輸入學生信息(格式:?姓名?分數)\n");
for?(i?=?0;?i?<?student_num;?i++)
{
scanf("%d?%s?%f",?&(student.no),?student.name,?&(student.fraction));
student_list[i]?=?student;
}
printf("輸出學生成績(排序前)\n");
outputFraction(student_num,?student_list);
/*?排序?*/
bubbleSort(student_num,?student_list);
printf("輸出學生成績(排序後)\n");
outputFraction(student_num,?student_list);
/*?求平均值?*/
var_f?=?varFraction(student_num,?student_list);
printf("平局成績:?%f\n",?var_f);
/*?查某人成績(no是學號)?*/
printf("輸入查詢學生學號:\n");
scanf("%d",?&no);
student?=?searchFraction(student_num,?student_list,?no);
printf("學生:%s?C語言成績:%f\n",?student.name,?student.fraction);
return?0;
}
沒有檢查,測試...自己查吧