赞
踩
1.有5个学生,每个学生的资料包括学号、姓名、3门课成绩,用赋初值方法输入5个学生的数据到结构体数组中,输出每个学生3门课的平均成绩(保留2位小数)。输出格式为:
No name score1 score2 score3 average
101 Zhou 93 89 87 ------
102 Yang 85 80 78 ------
103 Chen 77 70 83 ------
104 Qian 70 67 60 ------
105 Li 72 70 69 ------
2.在上题中,按平均成绩由高到低排序,输出每个学生的成绩,输出格式与上题相同】
- #include <stdio.h>
- struct student
- {
- int num;
- char name[20];
- float score[3];
- float ave;
- }stu[5];
- int main()
- {
- void input();
- void sort_score();
- void print_score();
- input();
- sort_score();
- print_score();
- return 0;
- }
- void input()
- {
- int i;
- printf("请输入5个学生的学号、姓名、3门课程成绩:\n");
- for(i=0;i<5;i++)
- {
- scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
- stu[i].ave=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
- }
- }
- void print_score()
- {
- int i;
- printf("%6s%20s%6s%6s%6s%10s\n","No","name","score1","score2","score3","average");
- for(i=0;i<5;i++)
- printf("%6d%20s%6d%6d%6d%10.1f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);
- }
- void sort_score()
- {
- struct student s;
- for(int i=0;i<4;i++)
- for(int j=0;j<4-i;j++)
- {
- if(stu[j].ave < stu[j+1].ave)
- {
- s= stu[j];
- stu[j] = stu[j+1];
- stu[j+1] = s;
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。