• C语言I博客作业11


    一、本周教学内容&目标

    第5章 函数 要求学生掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。

    二、本周作业头

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10129
    我在这个课程的目标是 掌握各种函数的用法和编译
    这个作业在那个具体方面帮助我实现目标 通过本次作业以及本周教学内容
    参考文献 《c语言程序设计》

    三、本周作业

    1.PTA实验作业

    2.代码互评

    3.学习总结

    四、作业格式

    1.PTA实验作业

    请再此处列出自己的排名图片,如

    1.1 题目名1

    题目内容描述:

    本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
    函数接口定义:
    int IsTheNumber ( const int N );
    其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。
    

    1.1.1数据处理

    介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。

    数据表达:输入int整型n=N;b,p[10]={0}表示初始值为零,m=sprt(n)表示完全平方数的表达
    数据处理:输入变量n=N正整数;b,p[10]={0}表示初始值为零,m=sprt(n)表示完全平方数的表达
    if(m*m==n)//判断是否满足条件
    运用while(n)//n的函数
    {
       b=n%10;
       p[b]++;
       n/=10;
    }  //判断是否有俩个相同的数
    for(int i=0;i<=9;i++)
        {
          if(p[i]>1)
          return 1;
        } //判断是否满足条件,能否进行运算
    return 0;最后运行结束
    

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    105 500 如图所示
    110 600 如图所示
    100 500 如图所示
    1.1.4 PTA提交列表及说明

    根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。

    编译错误:没有考虑的初始值的问题,导致错误
    解决方法:重新考虑初始值都问题,使用m=[10]={0}来控制初始值的问题
    编译错误:for循环当中的范围没有处理好
    解决方法:在for循环当中从0开始到9结束,运用int整型来定义

    1.2 题目2
    本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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<a≤b≤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 数据处理
    数据表达:运用int整型,运用s=0;表示正整数的个数,t=0;表示正整数的和,运用了while语句,for,if循环结构
    数据处理:输入变量s,t,number
    while(number!=0){  //判断是否满足条件
       t=number%10;
       number/=10;
       s+=t;
       }  //求给定的正整数的各位数字之和
       if(s==5)
       return 1; //各位数之和为5
       else
       return 0; //各位数之和不为5
    }
    void count_sum( int a, int b )
    {
       int sum=0,i;//正整数的和
       int count=0;//求各位数字之和
       for(i=a;i<=b;i++){
       if(is(i)){
        count++;
        sum+=i;
        }  //在此范围的正整数符合条件的有哪些
    } 
    printf("count = %d, sum = %d
    ",count,sum);
    }
    
    1.2.2 实验代码截图

    1.2.3 造测试数据
    输入数据 输出数据 说明
    104 999 104 is counted count = 10,sum = 3720 说明这个数有15个,和为3720
    5 60 5 is counted count = 6,sum = 165 说明这个数有5个,和为165
    156 896 15 is counted count = 10,sum = 3110 说明有10个,和为3110
    1.2.4 PTA提交列表及说明


    编译错误:没有考虑到判断在此范围内的各个数字的累加,正整数的和如何用一个if语句来判断
    解决方法:重新阅读题目发现我应该运用is(i)函数了表达
    编译错误:字母表达怕不记得,我就将字母改成了number来表示,字母打错了
    解决方法:仔细观察,发现number被我写成了nunber,改过来就行了。

    2.代码互评

    同学代码截图 自己代码截图

    这个同学和我的代码是一样的思路,但是他的有一点就是他写上了每一个部分的想法后面,我的代码除了变量不同之外,其他都是一样,我之所以拿出这个和我一样的代码是因为他的优点展现在哪里,这才是我想法,把自己的想法写在后面,有利于其他人阅读,能够快速看出代码想表达的意思
    同学代码截图:

    自己代码截图:

    这个代码运用的是do-while循环语句,我用的是while语句,和我的不一样,但是我们的思路都是一样的,都选择了先判断正整数的各个数字,在判断各个数字的和以及正整数的之和。

    3.学习总结

    3.1 学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    等一周9.19-9.27 7天 28行 学会了如何开始进行编辑和简单的程序 为什么在编辑时要这么严厉,错一个符号都会是编译错误
    第二周9.25-910.4 5天 20行 学会了如何用已学知识举一反三 为什么有时候用一个字母代表不行,有时候又可以
    第三周10.8-10.12 4天 136行 难度加大的编程 不知道如何简写编程
    第四周10.15-10.18 3天 120 指定次数的循环程序设计 不知道如何将分子和分母都是变量的情况下编写程序
    第五周10.23-10.26 4天 89 学习函数的运用和表达 不知道运用那种流程正确表达函数运用较为正确
    第六周10.28-11.2 3天 130 学习分支结构多次if-else循环 不知道在哪里打上中括号同时满足条件
    第七周11.5-11.8 2天 140 学习switch语句的运用 不知道如何表达switch语句的表达式,还不是很熟练
    第八周11.12-11.15 2天 130 学习while和do-while的运用 条件在while语句中不知道如何表达才是正确的
    第九周11.19-11.22 2天 120 学习了嵌套循环的运用
    第十周11.26-11.28 2天 135 复习了循环语句以及如何读题目 嵌套循环还不是很会用
    第十一周12.4-12.6 1天 125 学习了函数类型,定义,说明等等 不知道如何将所学内容串联起来
    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟
    3.3.1 学习内容总结

    3.3.2 学习体会

    1.这周的情况不是很好,可能是因为新知识点还没有完全掌握,这周PTA做的也是非常的艰难,很多东西我都无法串联起来,因此这次作业我有观看其他人的代码才能做出来。
    2.新知识点还是要多多运用才行,否则我真不知道如何办才好,还得要继续努力才行。
    3.总的来说,学习c语言也要结束了,突然感觉时间过的很快,我都来不及准备,就要结束了。希望我能够越来越好。

  • 相关阅读:
    Mac Office2016 安装及破解
    Axure 下载安装
    MacBook Pro常用快捷键
    MySQL 关于case when结合group by用时的写法举例
    RFID第二次作业
    Javascript函数柯里化(curry)
    binarySearch二分查找——Javascript实现
    KMP算法——Javascript实现
    从输入 URL 到页面加载完成的过程中都发生了什么事情?
    丁又专老师作业——Java检测代码
  • 原文地址:https://www.cnblogs.com/xiexiangyun/p/11995200.html
Copyright © 2020-2023  润新知