第四次作业
Posted 暴戾喵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四次作业相关的知识,希望对你有一定的参考价值。
6-1 按等级统计学生成绩
1.设计思路
子函数:
1> 定义整型变量count用来统计不及格成绩出现次数,整型变量i作为循环变量
2> 通过指针遍历该结构体数组 ,将成绩对应的等级赋值给对应的grade中
3> 函数返回count
2.流程图:无。
3.实验代码
#include <stdio.h> #define MAXN 10 struct student{ int num; char name[20]; int score; char grade; }; int set_grade( struct student *p, int n ); int main() { struct student stu[MAXN], *ptr; int n, i, count; ptr = stu; scanf("%d\\n", &n); for(i = 0; i < n; i++){ scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score); } count = set_grade(ptr, n); printf("The count for failed (<60): %d\\n", count); printf("The grades:\\n"); for(i = 0; i < n; i++) printf("%d %s %c\\n", stu[i].num, stu[i].name, stu[i].grade); return 0; } int set_grade( struct student *p, int n ){ int count = 0, i; for(i = 0;i<n;i++,p++){ if(p->score<60){ p->grade = \'D\'; count++; } else if((p->score<70)&&(p->score>=60)){ p->grade = \'C\'; } else if((p->score<85)&&(p->score>=70)){ p->grade = \'B\'; } else{ p->grade = \'A\'; } } return count; }
4.本题调试过程碰到问题及解决办法
错误信息1:无
错误原因:无
改正方法:无
git地址:https://coding.net/u/lgy2787/p/disicizuoye/git/blob/master/6-1
6-2 结构体数组按总分排序
1.设计思路
子函数calc
1> 定义整型变量i作为循环变量
2> 将结构体数组中sum成员的值用指针p进行求和
子函数sort
1> 定义循环变量i,j;下标变量k
2> 通过选择排序对结构体进行排序
2.流程图:无。
3.实验代码
#include <stdio.h> struct student { int num; char name[15]; float score[3]; float sum; }; void calc(struct student *p,int n); void sort(struct student *p,int n); int main() { struct student stu[5]; int i,j; float f; for(i=0;i<5;i++) { scanf("%d%s",&stu[i].num,stu[i].name); for(j=0;j<3;j++) { scanf("%f",&f); stu[i].score[j]=f; } } calc(stu,5); sort(stu,5); for(i=0;i<5;i++) { printf("%5d%15s",stu[i].num,stu[i].name); printf(" %.1f %.1f %.1f %.1f\\n",stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].sum); } return 0; void calc(struct student *p,int n) { int i; for(i=0;i<n;i++,p++) { p->sum=p->score[0]+p->score[1]+p->score[2]; } } void sort(struct student *p,int n) { struct student t; int i,j; for(j=0;j<n-1;j++) for(i=0;i<n-1-j;i++) if((p+i)->sum<(p+i+1)->sum) {t=*(p+i); *(p+i)=*(p+i+1); *(p+i+1)=t; } }
3.本体调试过程碰到问题及解决办法
无
git地址:https://coding.net/u/lgy2787/p/disicizuoye/git/blob/master/6.2
以上是关于第四次作业的主要内容,如果未能解决你的问题,请参考以下文章