zoukankan      html  css  js  c++  java
  • C语言I博客作业07

    这个作业属于那个课程
    这个作业要求在哪里
    我在这个课程的目标是
    这个作业在那个具体方面帮助我实现目标
    参考文献

    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.我觉得同学们的学习态度不好,在给同学们看代码错误的时候发现代码很相似,而且问他们为什么这样写,有许多的人说不出,让他讲他的思路给我听也说不出。

  • 相关阅读:
    MySQL:批量修改表的排序规则
    Python黑客编程3网络数据监听和过滤
    springboot redis 项目实战 完整篇
    C#读取U盘序列号
    AS3,ReferenceError: Error #1056: 无法为 ×× 创建属性 ×××。
    知道挖掘机如何从货车上下来吗?
    一次进销存软件架构的实践(二)——业务外观层设计
    重构你的软件企业
    遇到了火狐扩展全部丢失的问题
    分布式系统设计原理与方案
  • 原文地址:https://www.cnblogs.com/b1356436060/p/11798275.html
Copyright © 2011-2022 走看看