zoukankan      html  css  js  c++  java
  • C语言I作业05

    一、本周教学内容&目标##

    第2章 用C语言编写程序-函数 2.5 生成乘方表与阶乘表。使学生对函数的定义和调用有初步的认识,能模仿编程。

    二、本周作业头##

    问题 答案
    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/2019TA/homework/9833
    我在这个课程的目标是 以C为基础,进一步学习java与C++
    这个作业在那个具体方面帮助我实现目标 练习markdown语法以及自主寻找资料的能力
    参考文献 百度

    三、本周作业##

    1. PTA作业###

    1.1 编写函数fun,其功能是:判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0,返回到主调函数来判断是否为素数,返回值为1说明是素数,0则为非素数。.

    1.1.1 数据处理

     -数据表达:提出整形变量sum,i,result,以及定义函数prime,用来解决数字平方能否被5整除,变量i用于进行循环,变量sum用于存储余数来进行进一步的判断是否为素数,result赋值1,用于在接下来的运行中对于此输入数字是否为素数而改变值,以返回此值进行验证是否为素数;
     -数据处理:以作为被调函数的定义函数的主体,其中包含着判断语句if和循环语句for,来进行程序运行,其中if判断出非素数的可能(素数肯>=2),当if语句判断完毕,就进入for循环来进行赵卒为素数的i,如果非素数则输出返回值0,如果是素数则输出返回值1;然后返回result,用于是否为素数进行判断;
    

    1.1.2 实验代码截图

    函数接口定义:####

    int fun(int n );
    

    裁判测试程序样例:####

    #include <stdio.h>
    int fun( int n );
    
    int main()
    {
      int m;
      scanf("%d", &m);
      printf("The result is %d
    ", fun(m));
      return 0;
    }
    
    /* 你的程序将被嵌入在这里 */
    

    输入格式:####

    12
    

    输出格式:####

    The result is 1
    

    输入样例:####

    123
    

    输入样例:####

    The result is 0
    

    1.1.3 造测试数据

    输入数据 输出数据 说明
    46 This result is 0 正数
    134 This result is 0 正数
    -23 This result is 0 负数

    1.1.4 PTA提交列表及说明

    Q1:部分正确主要是因为说明造成的?
    A1:两个部分正确都是由于if语句的部分返回出现问题,并未正确返回所需的0或者1,来正确使代码正常运行,而且出现了一些编译错误(else语句错误),但不知道为什么没有出现编译错误,在这两个出现问题,对这两个地方的if进行了更改,使程序正确;
    

    1.2 本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。.
    1.2.1数据处理

     -数据表达:提出变量i和形参n,形参用于接收实参进行函数之间的联系,变量i用于for循环来控制内部的循环输出;
     -数据处理:两个被调函数,使用for循环来调试出符合素数的数来进行判断,再使用if语句进行判断来,其中也应用到另一个被调函数来进行判断,再判断之后输出并跳出或者不做反应;
    

    1.2.2 实验代码截图

    函数接口定义:####

    int prime( int p );
    void Goldbach( int n );
    

    其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解,其中p≤q均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要求必须输出所有解中p最小的解。

    裁判测试程序样例:####

    #include <stdio.h>
    #include <math.h>
    
    int prime( int p );
    void Goldbach( int n );
    
    int main()
    {
        int m, n, i, cnt;
    
        scanf("%d %d", &m, &n);
        if ( prime(m) != 0 ) printf("%d is a prime number
    ", m);
        if ( m < 6 ) m = 6;
        if ( m%2 ) m++;
        cnt = 0;
        for( i=m; i<=n; i+=2 ) {
            Goldbach(i);
            cnt++;
            if ( cnt%5 ) printf(", ");
            else printf("
    ");
        }
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    输出格式:####

    89 100
    

    输出样例:####

    89 is a prime number
    90=7+83, 92=3+89, 94=5+89, 96=7+89, 98=19+79
    100=3+97, 
    

    1.2.3 造测试数据

    输入数据 输出数据 说明
    65 76 66=5+61,68=7+61,70=3+67,72=5+67,74=3+71 m<n
    76 65 m>n
    86 86 86=3+83 m=n

    1.2.4 PTA提交列表及说明

     Q1:为什么出现这些答案错误,是什么因为什么?
     A1:这些答案错误都是被调函数出现问题,其他都是进行了更改但是并没有使答案正确,造成了这么多的答案正确,原因使因为再使用while语句时存在着一些变量赋值的表达式使while无法正常循环;将错误更改后正确;
    

    2. 代码互评###

    同学代码截图:

    2. 代码互评###

    自己代码截图:

     与第一份作业:它采用的时提出头文件math,直接运用数学函数进行计算;且用(N-a*100)来得到个位数字为后续运算;然后和我一样当结果==N时返回1,否则返回0;
    
     与第二分作业:运用for循环,每次提出一个数字并且用sum进行存储,当循环结束,用sum==N进行判断,是则返回1,否则返回0;比我的更高端吧,看着就感觉好一点,运用for循环和if分工完成了任务,我虽然也使用if但是前面一部分是非常杂乱的,没有他的简洁;
    

    3. 学习总结###

    3.1 学习进度条.

    周/日期 这周所花时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第七周 9小时 513 定义函数 return的返回位置
    第八周 12小时 467 局部变量与全局变量 暂无
    第九周 12小时 483 数组 暂无

    3.2 累积代码行和博客字数.

    3.3思维导图

    3.3.1 学习内容总结与体会
    总结:学习了数组以及预处理命令,了解了宏定义的意义以及使用方法,例如宏定义的宏名再函数内不可以用 “” 括起来,这样出现一些问题,无法正确地参与计算;数组的一些使用方法;本周的学习程度不够,将加快学习,对于之前学习的while与do-while要进行应用,防止今天出现的一些错误,在一些题目中获取了一些知识,例如:if(N%5),所以可以通过做题来时自己的问题浮现,再进行更改;
    体会:现在学习C的进度有些迟缓,让我感到无法完成博客1的目标,但是接下来将加快学习进度,而且从这个助教的PTA作业,我发现了一些问题,函数的应用没有达到想要的地步,所以,PTA的固定题目将要去挑战,不仅要学了,而且要学好,认真地完成自己的目标;对于现在的班级学习氛围有点烦躁,感觉他们对于基础课一点都不认真,作业应付,有的甚至只将题目协商,其他的说明都不写,而且不提交作业的人数也多,对于我多次的要求也跟没有听到一样;仍持续出现只发布不提交的作业,我也将要在此方面想一些方法来抑制这种风气。

  • 相关阅读:
    ES6-Object
    ES6-Iterator
    ES6-Generator
    ES6-fetch
    ES6-Function
    ES6-Array
    ES6-Class
    SQLite使用事务更新—by command
    交款功能代码
    SQLite本地事务处理
  • 原文地址:https://www.cnblogs.com/lpen/p/11731679.html
Copyright © 2011-2022 走看看