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


    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 C语言I作业0011
    我在这个课程的目标是 对于学过的内容,可以很熟练的进行编程,而且还可以看懂代码的每一步代表着什么意思,训练自己找错的能力
    这个作业在那个具体方面帮助我实现目标 思维导图可以帮我建好学习框架,PTA的题目让我巩固知识点
    参考文献 百度、《C Primer Plus》第六版,C语言程序设计

    1.PTA实验作业

    1.1题目名1

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

    1.1.1数据处理

    数据表达:第一个函数定义了两个整型变量:num1,sum,并且给sum赋值为0;第二个函数定义了3个整型变量:count,sum2,i,并且给count、sum赋值为0
    数据处理:

    int is( int number )
    定义num1和sum两个变量
    sum=0;
    用do-while循环{
         num1=number%10;
         sum=sum+num1;
         number=number/10;
    }终止条件是number等于0
    然后用if-else语句判断{
          if(sum==5)
             return 1;
          else
             return 0;
    }
    
    void count_sum( int a, int b )
    定义count、sum2、i三个变量
    count=0;
    sum=0;
    用for循环语句,里面包含一个if语句
    for(i=a;i<=b;i++){
    		if(is(i)){
    			count++;
    			sum2=sum2+i;
                     }
    }
    如果满足第一个函数就进行累加,否则就不执行
    最后输出结果:printf("count = %d, sum = %d",count,sum2);
    

    1.1.2实验代码截图


    1.1.3造测试数据

    输入数据 输出数据 说明
    104 999 104 is counted. count = 15, sum = 3720 例题上的数据
    5 60 5 is counted. count = 6, sum = 165 随机输入的数据进行测试
    1000 1999 count = 15, sum = 17220 随机输入的数据进行测试
    10 30 count = 2, sum = 37 随机输入的数据进行测试

    1.1.4PTA提交列表及说明


    1.运行超时:我开始用的while循环,用DevC++测试发现一直循环,而且根据题目发现要用do-while循环
    2-4多种错误:改了几次才知道是第二个函数中间函数出了问题,于是把第二段函数全删了,重新弄(有过忘记打上计数的代码、忘记给变量赋值)
    5.格式错误:在答案输出的那里等号两边要空格

    1.2 题目名2

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

    1.2.1 数据处理

    数据表达:定义了i, a[100],b, count,j五个变量,其中a[100]是数组,都是整型变量,给count赋值为0,令i=N、b=sqrt(i)(开根号);
    数据处理:

    int IsTheNumber(const int N)
    定义i, a[100],b, count,j;
    count=0;
    i = N;
    b = sqrt(i);
    
    if (b*b==i)
       while(i>0)
          a[count]=i%10;
          i=i/10;
          for (j = 0; j < count; j++)
    	{
    		if (a[count] == a[j])
    	         return 1;
    	}
    这里开始判断是否是完全平方数,中间有判断是否有两个数字是一样的,就是用数组储存每次计算的结果,然后进行比较是否相等
    count++;
    然后返回程序
    

    1.2.2 实验代码截图

    输入数据 输出数据 说明
    105 500 cnt = 6 例题上的数据
    140 463 cnt = 4 随机输入的数据进行测试
    501 666 cnt = 0 随机输入的数据进行测试
    668 999 cnt = 2 随机输入的数据进行测试

    1.2.4 PTA提交列表及说明


    因为要用到数组这个知识点,所以现在Devc++上测试,直达对了才誊到上面来,我来说说思路:这个题目其实想了很久,因为确实不知道怎么下手,后来觉得用数组会更简单,但因为这个知识点上课还没有讲到,所以不确定能不能用,但是不用数组的话我又想不出,所以最后决定还是用数组,数组可以用来储存数据,所以每算一次,我就储存在数组中,然后进行比较,看是否有相同的数,如果有,就返回计数。用数组解决这个问题简单了很多,我现在还没有想到不用数组怎么做,如果有知道的话,可以告诉我吗?

    2.代码互评

    2.1同学代码截图(计科3班李双同学)


    2.2自己代码截图


    2.3比较结果

    1.我们采用的方法不一样,她采用了数组的方法,我没有,我就是用都-while语句来进行计算
    2.我们只是计算的方式那里有一点不一样,其余的判断和求累积和是差不多的,两个方法都可以,看自己的习惯吧

    2.4同学代码截图(计科1班李泽基同学)

    2.5自己代码截图


    2.6比较结果

    1.这一题我是做了很久也没有做出来,问了同学才知道要用宏这个知识点要判断误差,这个是同学教我做的,而他没有用宏这个知识点,这点我很佩服他
    2.我相信他一定做了很久,这个代码我要向他学习,他没有用我们没学过的知识点做出来了,我要多向他请教
    3.学习总结

    3.1 学习进度条(5分)

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第一周(9.19-3.27) 6天 26行 Hello world编程和Markdown语法 现在没有疑惑
    第二周(9.25-10.4) 4天 45行 华氏度与摄氏度的转换 对于变量的类型还不是很懂
    第三周(10.8-10.11) 3天 大约100行左右 计算分段函数和学习if-else语句 对于if-else语句还是不那么熟练
    第四周(10.15-10.17) 3天 大约75行左右 for循环语句和指定次数的循环程序设计 关于指定次数的循环程序设计还不是很清楚
    第五周(10.22-10.25) 4天 大约110行左右 使用自定义函数来编程和生成乘方表和阶乘表 关于自定义函数的编程的细节还是不太懂
    第六周(10.29-11.1) 4天 大约120行左右 运用分支结构编程、字符型数据、逻辑运算符 对于逻辑运算符还不是很清楚,有一点点懵
    第七周(11.6-11.8) 3天 大约150行左右 运用switch语句来编程 现在感觉没有什么疑惑点,可能还没发现
    第八周(11.12-11.15) 3天 大约200行左右 进一步学习循环结构,学习了while和do-while语句 目前还没有发现什么疑惑点
    第九周(11.19-11.22) 3天 大约170行左右 学习了break语句和continue语句的用法以及嵌套循环 可能是刚学,在做PTA不是很熟练
    第十周(11.26-11.28) 2天 大约185行 对之前学过的循环结构进行了总结 暂时还没有发现问题
    第十一周(12.3-12.5) 3天 大约200行 进一步学习了函数,以及局部变量和全局变量 今天讲的比较快,有点懵的感觉,自己还需要时间去消化

    3.2 累积代码行和博客字数(5分)

    3.3 学习内容总结和感悟(5分)

    3.3.1 学习内容总结





    3.3.2 学习体会

    本学期的C语言的最后一节新课落下了帷幕,时间真的好快,一下子就要考试了,记得从最开始敲代码时的崩溃到后面慢慢的习惯,这一个学期还是收获了很多,虽然中间的路并不平坦(可以说很艰难哈哈),但我还是坚持下来了,并且我也完成了,虽然还是有瑕疵,但我相信自己会慢慢改正的,我也会变得越来越好。本学期虽然结束了,但我们的学习之路还没有结束,我们这个专业是要不断学习的,所以不能放松,下周就会有考试,加油啦!

  • 相关阅读:
    poj 1113 wall(凸包裸题)(记住求线段距离的时候是点积,点积是cos)
    Atcoder(134)E
    poj 1696 极角排序(解题报告)
    poj 1410 (没做出来,记得闲着没事看看这道题)
    poj1066 线段相交简单应用(解题报告)
    poj 2653 线段相交裸题(解题报告)
    poj 1269
    要习惯用vector代替数组
    在 Angularjs 中$state.go 如何传递参数
    CSS实现内容超过长度后以省略号显示
  • 原文地址:https://www.cnblogs.com/pengqijia/p/11976449.html
Copyright © 2011-2022 走看看