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

    问题 回答
    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 C语言I博客作业07
    我在这个课程的目标是 完全独立的编译一个小游戏程序并正常运行。
    这个作业在那个具体方面帮助我实现目标 掌握多个确定条件的情况,掌握多分支结构switch语句的使用
    参考文献 《C语言程序设计》《C Primer Plus》

    1.PTA实验作业

    1.1计算天数

    本题要求编写程序计算某年某月某日是该年中的第几天.

    1.1.1数据处理

    数据表达:变量i,year,month,day,sum,用int定义而来,类型为整型。
    数据处理:条件表达式,关系表达式,逻辑表达式和switch语句分支结构。

    定义要输入的变量年月日,循环次数i,与天数的和;
    调用scanf函数输出年月日;
    switch语句(月份的选择)
    {
    case 1:输入为1月份时的天数和;break;
    case 2:输入为2月份时的天数和;break;
    case 3:输入为3月份时的天数和;break;
    case 4:输入为4月份时的天数和;break;
    case 5:输入为5月份时的天数和;break;
    case 6:输入为6月份时的天数和;break;
    case 7:输入为7月份时的天数和;break;
    case 8:输入为8月份时的天数和;break;
    case 9:输入为9月份时的天数和;break;
    case 10:输入为10月份时的天数和;break;
    case 11:输入为11月份时的天数和;break;
    case 12:输入为12月份时的天数和;break;
    default:printf函数输出错误;break;
    }
    总天数=月份天数和+输入日期的天数;
    if(判断是否为闰年)
    {
    if(判断输入月份是否大于二)
    {
    满足以上条件,总天数和+1;
    }
    }
    ptintf输出总天数和;
    返回零;
    }

    1.1.2实验代码截图


    1.1.3 造测试数据

    输入 输出 说明
    2001/10/10 283 非闰年
    2012/01/24 24 闰年
    2019/11/07 311 非闰年

    1.1.4 PTA提交列表及说明

    1.编译错误:case与数字之间应该空格,之前没空显示编译错误。

    1.2 统计学生成绩

    本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
    大于等于90分为A;
    小于90且大于等于80为B;
    小于80且大于等于70为C;
    小于70且大于等于60为D;
    小于60为E。

    1.2.1 数据处理

    数据表达:用int定义变量i,N,grade,shu,ABCDE,类型为整型。
    数据处理:条件表达式,赋值表达式,和switch语句分支结构。

    定义循环次数,个数,除数,五个等级变量并赋值为零;
    调用scanf函数,输入个数n;
    for(循环的初始,条件,变化)
    {
    scanf输入变量成绩;
    求出出数;
    switch(除数)对应不同case
    {
    case 10:
    case 9:A等级个数自增;break;
    case 8:B等级个数自增;break;
    case 7:C等级个数自增;break;
    case 6:D等级个数自增;break;
    case 5:
    case 4:
    case 3:
    case 2:
    case 1:
    case 0:E等级个数自增;break;
    }
    }
    ptintf输出五个等级个数;
    返回零;
    }

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入 输出 说明
    5
    45 84 37 97 35
    1 1 0 0 3 成绩相差大
    5
    55 66 77 88 99
    1 1 1 1 1 成绩分布平均
    5
    56 67 78 68 88
    0 1 1 2 1 成绩相差小

    1.2.4 PTA提交列表及说明

    1.编译错误:switch语句后面需要用{}括起来
    2.编译错误:case与后接数字之间应空格
    3.编译错误:将应该分开写的case 1;case 2;.....写成case 1.2.3....;
    4.答案错误:在int定义的ABCDE时忘记赋值为零,系统直接默认定义为一,所以答案错误,将ABCD赋值为零。
    5.答案错误:在输出中各数之间应空格,所以%d之间应有空格。

    2.代码互评

    同学代码截图


    自己代码截图

    1.两位同学的思路都是将二月分成两种情况,一种是闰年的一种不是闰年的,然后分开书写,但我觉得这样代码比较繁琐,而且观看起来比较吃力的感觉,认为自己的代码可能更简便一些。
    2.同学都是在case语句后面调用printf函数输出来表达天数,而我直接定义一个天数和的变量。
    3.同学的代码虽乍一看比较麻烦,但是多看一会也能看懂,我的可能需要看久点来慢慢分析各代码的含义。不易让人读懂。

    3.学习总结

    3.1 学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第三周10.9-10.12 两天 188 对代码数据的处理了解,比如类型结构等 什么时候用int,double声明变量,逻辑运算符的运用等
    第四周10.16-10.18 一天半 190 如何用double型数据使用lf%,怎样在程序中用for语句实现循环,可指定循环次数 循环体中的关系表达式的正确运用
    第五周10.23-10.26 两天 226 运算符的优先级顺序,自定义函数的编写,对数据参数的了解 具体如何在题目中定义函数,参数又应放在哪里才是正确位置
    第六周10.30-11.2 三天 348 分支结构应用,逻辑运算符的使用 在使用if-else语句时{}的位置与格式,语句一多就搞不清楚了
    第七周11.5-11.8 两天半 300 switch语句作为分支结构应用 伪代码到底该如何编写,写的详细和正规代码没什么两样,写的粗略思路又不够清晰

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    1.switch语句用于分支选择。
    2.switch语句的执行过程:先计算关键字switch后的表达式的值,然后在各个case语句里查找哪个值和这个表达式的值相等,如果相等,程序执行相应的分支语句后继续往下执行,直到碰上break语句或switch语句的结束。
    3.case语句后面跟的必须是常量或常量表达式,并且之间要空格。
    4.在case后面的各常量表达式的值不能相同,否则会出现错误。
    5.在case后面,允许有多个语句,可以不用{}括起来。
    6.各case语句和default的顺序可以变动,default语句可以省略不用。

    3.3.2 学习体会

    • 本次课程新加了伪代码的书写,便于理清思路,能够快速准确的写出代码。
    • 对编代码渐渐得心应手了。
    • 在编程过程中遇到困难是难免的,自己会主动查找相关资料,甚至是拓展开的相关知识点进行学习。
  • 相关阅读:
    电位器的使用
    序言
    跨域之options请求详解
    redis config 实现切库 和指定序列化
    巨坑! druid1.1.0
    跨域问题解决
    canal解决缓存穿透 对数据库同步数据至redis 或EleasticSearch
    oauth2+spring security +jwt 完成分布式服务认证
    oauth2的数据库设计
    Gson 转换 Localdate 使用 GsonBuilder setDateFormat 无效
  • 原文地址:https://www.cnblogs.com/oyxyoyxyo/p/11795811.html
Copyright © 2011-2022 走看看