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

    这个作业属于哪个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11493
    我在这个课程的目标是 更好的理解现在所学习的内容,补充细节和框架
    这个作业在哪个具体方面帮助我实现目标 思维导图和代码互评
    参考文献 《C Primer Plus》

    1.PTA实验作业

    1.1实验4-2-3 验证“哥德巴赫猜想” (20分)

    数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。

    1.1.1 数据处理

    数据表达:
    1.变量n:由输入得来,类型为整型;
    2.变量i:由赋值得来,类型为整型;
    3.变量flag:由赋值得来,类型为整型;
    4.变量a:由赋值得来,类型为整型;
    5.变量b:由赋值计算得来,类型为整型;
    6.变量x: 由输入得来,形式参数,类型为整型;
    7.变量prime:由赋值得来,实际参数,类型为整型。
    数据处理:
    1.表达式:赋值表达式,算术表达式,关系表达式,逻辑表达式。
    2.流程结构:声明自定义函数;主函数:1.定义变量,2.输入变量,3.while循环(判断两个整数是否为素数,相加是否为所输入的值);自定义函数Prime:1.定义返回值,2.赋值返回值,3.用if-else语句判断是否为素数。
    3.主调函数:main,被调函数:Prime,类型为int,形参为x,实参为prime,i,类型均为int。
    

    1.1.2 实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    8 8 = 3 + 5 8的素数和中P最小的为3
    5996 5996 = 43 + 5953 当p较大时的输出
    3 输入为奇数,不满足题目要求,无输出

    1.1.4 PTA提交列表及说明

    编译错误:在vs中编写的程序,复制粘贴过来后忘记删除_s。
    部分正确:测试点2,测试点3运行超时。
    部分正确:测试点3,答案错误,后发现是判断素数时循环中少了一个等于号,导致部分不是素数被判断为素数。
    

    1.2 7-12 打印沙漏 (20分)

    本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印:

    *****
     ***
      *
     ***
    *****
    

    所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。
    给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

    1.2.1 数据处理

    数据表达:
    1.变量n:由输入得来,为整型;
    2.变量row:由计算得来,为整型;
    3.变量s:由计算得来,为整型;
    4.变量a:由赋值得来,为整型;
    5.变量c:由输入得来,为字符;
    6.变量i,j:由赋值,计算得来,为整型。
    数据处理:
    1.表达式:赋值表达式,算术表达式。
    2.流程结构:定义变量,输入变量,for循环计算,for循环嵌套for循环分别输出空格与字符,输出剩余的字符。
    3.函数参数:主调函数main,无被调函数。
    

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    1 * 0 输出一行,剩余0
    6 * 5 因为不满足输出三行,所以只输出一行,剩余5个
    17 0 刚好满足输出五行,于是输出沙漏并输出0

    1.2.4 PTA提交列表及说明

    编译错误:在vs中编写的程序,复制粘贴过来后忘记删除_s;
    部分正确:测试点2,测试点3,测试点4错误,因为当字符不满三行时仍然输出三行;
    部分正确:测试点3错误,当出现最小n及最大于时,仍然多显示两行,且余数显示负数。
    

    2.代码互评

    同学代码:
    1.

    2.

    自己代码:

    不同:

    第一份代码中编写了两个自定义函数,将判断是否为素数,与判断是否相加等于输入的数字分别用自定义函数表达,节省了运行时间,主函数也更简洁明了。
    第二份代码中判断素数的自定义函数运用了函数返回值的特性,1是真,0是假,在主函数的if语句中直接判断真假,而不需要自己再定义一个变量来存储返回值。

    3.学习总结

    3.1 学习进度条

    周/日期 这周所花时间 代码行 学到的知识点简介 目前比较困惑的问题
    第八周 30小时 600 基础知识,输入输出函数if-else语句
    第九周 30小时 700 for循环,while循环,switch语句,数组 怎样用数组打出金字塔和蛇形数组
    第十周 30小时 500 二维数组的使用
    第十一周 25小时 550 自定义函数,命名法 怎样解决自己的暴力解题思路,让代码更直观简洁

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3#3.3.2 感悟

    这周学习了自定义函数,之前写题时碰到不少的运行超时都随着自定义函数的的到来解决了,也证明了我现在写题的方式是十分表层的,还有很多东西都没有接触到,希望下周继续加油。

  • 相关阅读:
    time模块
    日期和时间
    异常和函数
    finally子句
    自定义异常
    异常中的else
    全捕捉
    排序算法---希尔排序
    排序算法---直接插入排序
    排序算法---快速排序
  • 原文地址:https://www.cnblogs.com/czy020719/p/13966181.html
Copyright © 2011-2022 走看看