这个作业属于那个课程 | C语言程序设计II |
---|---|
我在这个课程的目标是 | 将指针与结构结合起来应用 |
这个作业在哪个具体方面帮助我实现目标 | 了解到数据类型可自己定义 |
参考文献 | C语言程序设计II第九章 |
6-1 按等级统计学生成绩 (20 分)
本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。
函数接口定义:
int set_grade( struct student *p, int n );
其中p是指向学生信息的结构体数组的指针,该结构体的定义为:
struct student{
int num;
char name[20];
int score;
char grade;
};
n是数组元素个数。学号num、姓名name和成绩score均是已经存储好的。set_grade函数需要根据学生的成绩score设置其等级grade。等级设置:85-100为A,70-84为B,60-69为C,0-59为D。同时,set_grade还需要返回不及格的人数。
裁判测试程序样例:
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;
}
/* 你的代码将被嵌在这里 */
输入样例:
10
31001 annie 85
31002 bonny 75
31003 carol 70
31004 dan 84
31005 susan 90
31006 paul 69
31007 pam 60
31008 apple 50
31009 nancy 100
31010 bob 78
输出样例:
The count for failed (<60): 1
The grades:
31001 annie A
31002 bonny B
31003 carol B
31004 dan B
31005 susan A
31006 paul C
31007 pam C
31008 apple D
31009 nancy A
31010 bob B
(1)实验代码:
int set_grade( struct student *p, int n )
{
int i;
int a=0;
for(i=0;i<n;i++,p++){
if(p->score<=100&&p->score>=85){
p->grade='A';
continue;
}
if(p->score>=70&&p->score<=84){
p->grade='B';
continue;
}
if(p->score>=60&&p->score<=69){
p->grade='C';
continue;
}
if(p->score>=0&&p->score<=59){
p->grade='D';
a ++;
continue;
}
}
return a;
}
(2)思维导图:
(3)遇到的问题及解决方法:
问题:总是编译错误或者部分正确。
解决方法:分数等级与count++的关系没弄清楚,将count++放到D等级处。
(4)正确截图:
预习中的疑惑:
自定义的数据类型更常用吗?
学习进度条:
周 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第九周 | 4h | 100 | 结构的概念与定义 | ->是个什么神奇符号 |
学习折线图:
学习感悟:好像结构比指针容易理解些。希望能把两者结合的应用学好吧。
结对编程:
心得:诶,队友总是刷新我的知识点,或者说世界观?
好处:总结我队友:“授之以鱼,不如授之以渔”,挺好。
总结我自己:“靠山山要倒,靠人人要跑。以后总是靠自己才活得下去,不论以哪种方式。”
我的缺点:知识不牢固。
我的优点:还是会想学好,所以认真听队友的尊尊教诲。
队友缺点:好像没什么缺点,就像他说的他有点自大吧。
队友优点:很耐心也很认真,重要的是厉害!
预习作业:第十周的教学内容是:第十章 函数与程序结构
请大家查阅资料,思考问题中的三问:什么是递归函数,它的优点和缺点有哪些,如何归纳出递归式?
请将你的思考用自己的语言写下来。如果有引用他们的文字,请一定要标出出处(使用Markdown的链接方式)。
什么是递归函数?
通过百度得知,它是数论函数的一种。其定义域与值域都是自然数集,构作函数方法不同于其他函数。
它的优点和缺点有哪些?
优点:一、实现容易。二、简洁。
缺点:一、效率较低。不仅消耗时间与空间,而且很多计算可能是重复的。二、可能导致调用栈溢出。
如何归纳出递归式?
诶。这个真的不懂了。