1.设计思路
子函数:
1> 定义整型变量count用来统计不及格成绩出现次数,整型变量i作为循环变量
2> 通过指针遍历该结构体数组 ,将成绩对应的等级赋值给对应的grade中
3> 函数返回count
2.流程图:无。
3.实验代码
int set_grade( struct student *p, int n ) { int count=0,i; for(i=0;i<n;i++) { if((p+i)->score>=85&&(p+i)->score<=100) (p+i)->grade = 'A'; else if((p+i)->score>=70&&(p+i)->score<=84) (p+i)->grade = 'B'; else if((p+i)->score>=60&&(p+i)->score<=69) (p+i)->grade = 'C'; else if((p+i)->score>=0&&(p+i)->score<=59) { (p+i)->grade = 'D'; count++; } } return count; }
4.本题调试过程碰到问题及解决办法
错误信息1:无
错误原因:无
改正方法:无
git地址:https://git.coding.net/baoliwang/disicizuoye6.1.git
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<5;i++,p++) { p->sum=p->score[0]+p->score[1]+p->score[2]; } } void sort(struct student *p,int n){ struct student max; int i,j; for(i=0;i<n-1;i++){ for(j=0;j<n-1-i;j++) if((p+j)->sum<(p+j+1)->sum) { max = *(p+j); *(p+j)=*(p+j+1); *(p+j+1)=max; } } }
3.本题调试过程碰到问题及解决办法
错误信息1:无
错误原因:无
改正方法:无
git地址:https://git.coding.net/baoliwang/disicizuoye6.2.git