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

    问题 答案
    这个作业属于那个课程 C语言程序设计IIIII
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10131
    我在这个课程的目标是 熟练掌握各大语句,运算符,函数,尝试用简单的代码解决复杂的问题
    这个作业在那个具体方面帮助我实现目标 掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型
    参考文献 《C语言程序设计》

    一、PTA实验作业

    1.1统计某类完全平方数

    题目内容
    本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。

    函数接口定义

    int IsTheNumber ( const int N );
    

    其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0
    裁判测试程序样例

    #include <stdio.h>
    #include <math.h>
    
    int IsTheNumber ( const int N );
    
    int main()
    {
        int n1, n2, i, cnt;
    	
        scanf("%d %d", &n1, &n2);
        cnt = 0;
        for ( i=n1; i<=n2; i++ ) {
            if ( IsTheNumber(i) )
                cnt++;
        }
        printf("cnt = %d
    ", cnt);
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    1.1.1 数据处理

    数据表达:定义了整型变量n。n指输入的整数。sqrt 函数返回的值是double型,强制类型转换为int型。定义一个有10个整型元素的数组num,并对第一个元素赋初值0。
    

    伪代码

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    10 90 cnt=0 不存在两位数字相同的完全平方数
    50 130 cnt=2 满足条件的整数较少
    105 500 cnt = 6 题目示例
    90 950 cnt=9 满足条件的整数较多

    1.1.4 PTA提交列表及说明

    • Q1:部分正确说明大体思路是对的,可能是某种需要考虑的情况被漏掉或有部分不正确。
    • A1:当输入的数不是完全平方数需要返回0,加上这种情况就可以了。

    1.2统计各位数字之和是5的数

    题目内容
    本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和
    函数接口定义

    int is( int number );
    void count_sum( int a, int b );
    

    函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。
    函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式count = 满足条件的整数个数, sum = 这些整数的和进行输出。
    题目保证0<ab≤10000。
    裁判测试程序样例

    #include <stdio.h>
    
    int is( int number );
    void count_sum( int a, int b );
    
    int main()
    {
        int a, b;
    
        scanf("%d %d", &a, &b);
        if (is(a)) printf("%d is counted.
    ", a);
        if (is(b)) printf("%d is counted.
    ", b);
        count_sum(a, b);
    
        return 0;
    }
    

    1.2.1数据处理

    数据表达:在定义函数is时,定义了两个整型变量sum,a。sum表示number各位数字之和,a表示区间内的最小值。在定义函数count_sum时,定义了四个整型变量b,c,sum,count。b和c分别表示区间的最大值和最小值,sum表示满足条件的正整数之和,count表示满足条件的正整数的个数。
    

    伪代码

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    5 30 5 is counted.
    count = 3, sum = 42
    区间较小
    104 999 104 is counted.
    count = 15, sum = 3720
    题目示例
    233 2333 count = 31, sum = 40574 区间较大

    1.2.4 PTA提交列表及说明

    • Q1:格式错误可能是输入或输出时的格式不符合题目要求。
    • A1:题目要求输出两个数时=两边都要有一个空格,打上空格之后就正确了。

    二、代码互评

    2.1.1统计某类完全平方数

    2.1.2代码截图(左边和中间的分别为第一位同学和第二位同学的代码,右边的是自己代码)

    • 第一位同学比我多定义了一个变量b。在判断输入的n是否为完全平方数时,她用整型变量b来存sqrt(n),然后运用if语句判断b^2是否与n相等。我是直接将sqrt 函数返回的值是double型,强制类型转换为int型。
    • 第一位同学运用if语句进行判断,当n为完全平方数时再嵌套其他语句判断是否n至少有两位数字相同。我是运用if语句进行判断,如果n不是完全平方数直接返回0.
    • 第二位同学定义了一个有100个整型元素的数组a,用来存放i的余数。我定义了一个有10个整型元素的数组num。

    三、学习总结

    3.1 学习进度条

    这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第一周 6小时 29行 对C语言、markdown语法,编程有了初步的认识 对编程一窍不通,只会照着书上打
    第二周 8小时 19行 学会如何提问,安装MinGW-w64并用它编译C程序 markdown语法掌握不熟练
    第三周 10小时 96行 关系运算、if-else语句、格式化输入语句scanf(),以及常用的数学库函数 对编程中各大语句的运用不熟悉
    第四周 13小时 93行 for循环语句实现指定次数的循环程序设计 运用for语句时经常犯很多错误
    第五周 10小时 161行 用C语言编写程序 对编写函数和调用函数还有很多不熟悉
    第六周 12小时 168行 多分支结构、字符型数据类型和逻辑运算符 对各运算符的优先级和结合性,多分支结构不熟悉
    第七周 10小时 185行 熟悉多分支结构switch语句的使用 面对比较复杂的题时难以解决
    第八周 8小时 159行 使用while和do-while结构解决问题 不知道如何写伪代码
    第九周 8小时 158行 熟悉break、continue的使用,熟悉使用循环的嵌套解决问题 对复杂的嵌套循环还是有些难理解
    第十周 11小时 140行 根据实际情况,选择合适的算法、合理的循环结构,熟练的编写程序 逻辑思维能力不够,做题太吃力
    第十一周 10小时 194行 掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型 不太理解函数的类型区分,定义等

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    • 函数作为能够完成特定任务的独立程序代码单元,毫无疑问是编写代码时非常便利的工具。不仅可以省去重复的代码,还提高了代码的可读性。但它学起来也是非常头疼的。首先是函数的分类,有无参数,有无返回值,其次是如何定义函数,如何调用函数和如何声明函数,还有变量的作用域和存储方式。好像都有点一知半解的样子。
  • 相关阅读:
    try_files $uri $uri/ /index.php?$query_string;
    关于declare(strict_types=1)的有效范围
    SVN客户端安装与使用
    Java日志框架中真的需要判断log.isDebugEnabled()吗?
    Spring4自动装配(default-autowire)
    java的@PostConstruct注解
    Google Guava之--cache
    Java类加载机制与Tomcat类加载器架构
    搞懂JVM类加载机制
    Java 类加载机制
  • 原文地址:https://www.cnblogs.com/shenxinglou/p/11998890.html
Copyright © 2011-2022 走看看