这个作业属于那个课程 |
这个作业要求在哪里 |
我在这个课程的目标是 |
这个作业在那个具体方面帮助我实现目标 |
参考文献 |
1.PTA实验作业
1.1 统计学生成绩
本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
- 大于等于90分为A;
- 小于90且大于等于80为B;
- 小于80且大于等于70为C;
- 小于70且大于等于60为D;
- 小于60为E。
输入格式
**输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。 **
输出格式
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
输入样例
7
77 54 92 73 60 65 69
输出样例
1 0 2 3 1
1.1.1数据处理
数据表达:
我用了整形变量n,grade,i,a,b,c,d,e,其中n为输入的成绩数量,grade为输入的成绩,i用于判断循环的终止条件,a,b,c,d,e分别为对应成绩等级的人数
数据处理:
开始
i<-1
a=b=c=d=e=0
输入成绩的个数n
for(i<=n;i++)
{
输入成绩grade
grade自除10
switch(grade)
{
grade=10则a++;跳出当前语句
grade=9则a++;跳出当前语句
grade=8则b++;跳出当前语句
grade=7则c++;跳出当前语句
grade=6则d++;跳出当前语句
grade=5或4或3或2或1或则e++;跳出当前语句
}
}
按顺序输出a,b,c,d,e的值
结束
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 60 65 66 23 0 | 0 0 0 3 2 | 输入5个成绩,D等的为3个,E等的为2个 |
6 87 96 75 64 32 33 | 1 1 1 1 2 | 输入6个成绩,A等的为1个,B等的为1个,C等的为1个,D等的为1个,E等的为2个 |
1.1.4 PTA提交列表及说明
1.答案错误:忘记将a,b,c,d,e赋值,导致自加的时候出错,后来将a,b,c,d,e赋值为0;
2.部分错误:将0分的情况丢掉了,后来加上了成绩为0分的情况;
1.2整数的分类处理
给定 N 个正整数,要求你从中得到下列三种计算结果:
- A1 = 能被 3 整除的最大整数
- A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数
- A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值(精确到小数点后 1 位)
输入格式:
输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。所有数字都不超过 100,同行数字以空格分隔。
输出格式:
在一行中顺序输出 A1、A2、A3的值,其间以 1 个空格分隔。如果某个数字不存在,则对应输出NONE
输入样例:
8
5 8 7 6 9 1 3 10
输出样例:
9 3 6.5
输入样例:
8
15 18 7 6 9 1 3 10
输出样例:
18 3 NONE
1.2.1 数据处理
数据表达:
我用了整形变量n,i,number,s,max,sum,count,flag,a,浮点型变量aerage,n为输入的正整数的个数,number为输入的正整数,max为能除断3中的最大值,sum为除3余下2的正整数的总和,s为正整数除以3的余数,count,flag,a,为计数器,分别用于贮存能整除3,除3余1,除3余2,的正整数的个数,average用于储存除3余2的正整数的平均值
数据处理:
开始
count=flag=a=0
输入正整数的个数
for(i=1;i<=n;i++)
{
输入正整数number
s<-number%3
switch(s)
{
s=0,
if max<numbe 则 max<-number
count++
跳出该语句
s=1 flag++,跳出该语句
s=2 sum自加number,a++,跳出该语句
}
if count=0 输出NONE
esle 输出max
if flag=0 输出NONE
else flag
if a=0 输出NONE
else avergae<-(sum/a) 输出averagr的值
}
结束
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 5 3 8 6 | 6 NONE 6.5 | 能除断3的最大数字为6,没有能除3余1的数字,能除3余2的数字的平均值为6.5 |
9 9 2 5 6 3 2 0 5 6 | 9 NONE 3.5 | 能除断3的最大数字为9,没有能除3余1的数字,能除3余2的数字的平均值为3.5 |
4 4 7 10 13 | NONE 4 NONE | 没有能除断3的,能除3余1的数字有4个,没有能除3余2的数字 |
1.2.4 PTA提交列表及说明
pta上面虽然没有错,但是我在devc++上面出过如下错误
段错误:将scanf语句里的&丢掉了,一直输出不了答案,后来将其加上才得以有答案输出。
2.代码互评
(孙梦姣)同学的代码
我的代码
1.她的代码有一个老师经常说到的问题,那就是代码的缩进,这样让读的人看起来很不舒服,如果哪着缩进不规范的代码去问别人,别人一般都是不想看的。
2.我的代码是先定义好变量再赋的值,因为这几变量的值都相等,连等可以让看代码的人更加直观。
3.总的来说,他的代码比我好在switch语句中用default来代替了后面低于60分的人让代码更加简洁,我的代码比她好在我用连等,可以让人更加直观的了解我变量的初始值,而且我的代码缩进比她要规范,如果让别人来选择代码观看,应该会选择我的。
(彭杰)同学的代码
我的代码
1.他的代码也不规范,首先,for循环没打大括号,而且缩进也不好,让我第一眼看下去的时候有点不想看,不过他自己学会去用数组了,但是我觉得这题目不用数组更好一点,因为用数组会加长这题运算的时间
2.我的代码将用来计数的变量和其他的变量分开来写,更加容易让人理解我写的是什么,并且我用英文单词来代表对应的变量,让读代码的人更加清楚明了我写的是什么。
3.他的代码和我的比起来,我的代码更加直观易懂一些,而且我代码的运行速度也比他要快,让别人来选择的话,一般情况都会选择我的。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第六周 | 25小时 | 434行 | 常用的数学函数,if-else语句,for语句,自定义函数 | 自定义函数不会用一个算法来运算多个式子 |
第七周 | 8小时 | 142行 | 二分支结构和用char输入字符 | 对于字符型的代码有点看不懂,getchar与putchar还不明白怎么运用 |
第八周 | 12小时 | 343行 | 多分支结构,switch语句 | switch语句用得有点混乱,搞不清什么时候该结束 |
第九周 | 14个半小时 | 503行 | 自定义函数的用法,怎样用一个算法来运算多个式子 | if语句的嵌套不明白是怎样分支的 |
第十周 | 8个半小时 | 181 | do-while,while循环语句和continue语句 | continue不知道怎么去运 |
第十一周 | 28个小时 | 1246 | 一维数组和二维数组的基本运用 | 数组用的不够熟练,老是犯错 |
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第四周 | 645 | 0 |
第五周 | 645 | 0 |
第六周 | 1275 | 434 |
第七周 | 2523 | 576 |
第八周 | 3371 | 938 |
第九周 | 5414 | 1441 |
第十周 | 6930 | 1622 |
第十一周 | 9584 | 2868 |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会!
1.这周一直都在刷题,不知不觉就过了一周了,不过感觉有所提升,学会了一些题目的算法,也会相同的方法去解答一些类似的题目,
2.在学习的过程中发现我们班的人想把C语言学好的人太少了,大家热情都不高,在给同学们打分的时候发现有部分同学都是在敷衍了事,甚至有同学只是交了一个标题,而且互相给的评论也只是敷衍了事,不会去看同学的博客园,这样根本没有达到老师想要的目的。
3.我觉得同学们的学习态度不好,在给同学们看代码错误的时候发现代码很相似,而且问他们为什么这样写,有许多的人说不出,让他讲他的思路给我听也说不出。