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

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10130
    我在这个课程的目标是 学会用正确的语法格式进行编程,锻炼能力,学好C语言,学会如何调用函数和定义函数
    这个作业在那个具体方面帮助我实现目标 习题的练习,代码互评,思维导图的绘制,培养了思维逻辑能力
    参考文献 百度,C语言程序与设计,C Prime Plus

    1.PTA实验作业

    1.1题目一:统计某类完全平方数

    1.2数据处理

    数据表达:result,sum,i,m,flag为整形变量,其中sum,flag定义初始值;并用了for和while的循环语句,还用了if语句,根据题目要求满足条件则return1,否则 return0;if(pow(result,2)==N)这条语句判断该值是否等于N,缩小范围。

    数据处理:

    伪代码:
    int IsTheNumber(const int N)
    int result,sum,i,m,flag //定义变量
    sum=0;
    flag=0; //定义初始值
    m=N;
    if(N<0) //作为判断条件
    return 0;
    else
    result=sqrt(N); //求平方根
    if(pow(result,2)N)
    for(i=0;i<=9;i++)
    while(!(m
    0))
    if(m%10i) //寻找相应的数
    sum++;
    m=m/10
    if(sum>=2)
    flag=1;
    m=pow(result,2);
    sum=0;
    if(flag
    1) //作为判断标志
    return 1;
    return 0
    End

    1.3PTA实验代码截图


    1.4PTA提交列表及说明

    说明:在做这些题的之前,我会在Dev-C++上做到答案正确才把答案写上去,故没有什么错误;但有一些重要的语法点还是要知道的:本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等;开始时在Dve-c++上输入题目的输入题目的输入样例后发现输出来的cnt为12不符合输出样例,然后不断讲输入的范围减小发现一个不符合条件的数169让cnt增加了一,然后进行调试,在自定义函数那里设置断点输入169 169,添加查看变量flag,i,cnt,不断点击下一步,发现当i=9的时候flag还是等于0,继续点击下一步发现在经过if(flag=1)后flag突然等于1然后进入了if语句内返回了1,然后发现if(flag=1)应改为if(flag==1);

    1.5造测试数据

    输入数据 输出数据 说明
    105 500 cnt = 6 验证是否正确
    108 600 cnt = 6 增加实验结果的可靠性
    225 800 cnt =5 增加实验结果的可靠性
    1.1.1题目二:统计各位数字之和是5的数

    1.1.2数据处理

    数据表达:i,sum,cnt用整型变量定义,其中sum,cnt定义初始值为0;运用了if-else的嵌套结构,循环语句for,调用两个函数void count_sum(int a,int b)和int is(int number);最后用语句if(s==5)作为判断条件,成立return 1不成立return 0;

    数据处理:

    伪代码:
    void count_sum(int a,int b)
    int i,sum,cnt; //定义变量
    sum←0; //定义初始值
    cnt←0;
    for i←a to b //作为循环条件
    if(is(i))
    cnt←cnt+1;
    sum←sum+i; //累加,计数
    printf("count ← %d, sum ← %d",cnt,sum); //输出对应的数
    int is(int number)
    int m,n,s; //定义变量
    s←0;
    n←number;
    while(!(n←0)) //作为判断循环是否终止
    m←n%10;
    n←n/10;
    s←s+m;
    if(s←5) //判断条件是否成立
    return 1;
    else
    return 0;
    End

    1.1.3实验代码截图

    1.1.4造测试数据

    输入数据 输出数据 说明
    104 999 104 is counted.count = 15, sum = 3720 验证是否正确
    203 888 203 is counted.count = 10, sum = 3110 增加实验结果的可靠性
    500 666 500 is counted.count = 1, sum = 500 增加实验结果的可靠性

    1.1.5PTA提交列表及说明

    Q1:格式错误,该空格的地方没有空格

    A1:正确格式为printf("count = %d, sum = %d",cnt,sum),因为输入样例和输出样例给出的数据空了格

    说明:在做这些题的之前,我会在Dev-C++上做到答案正确才把答案写上去,故没有什么大的错误;有些地方我还是值得学习的,如改了几次才知道是第二个函数中间函数出了问题,于是把第二段函数全删了,重新弄(有过忘记打上计数的代码、忘记给变量赋值);while语句终止条件错误,写成了n!=0。

    2.代码互评

    同学代码:

    我的代码:


    互评结果:

    • 他的代码更加简洁,主要是用了数组的有关知识;
    • 现阶段,我的代码更能让人理解;
    • 通过这次比较,我还许多方面向他学习;

    同学代码:

    我的代码:

    互评结果:

    • 总体内容上差不多,只是调用的函数的顺序不同;
    • 一些较长的单词我还是建议用一个字母进行表示,方便;
    • 他使用的是do-while语句,而我的是while语句,结构上有些区别;

    3.学习总结

    3.1 学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较疑惑的问题
    第一周 2小时 30行 如何空格,控制字符 编译的格式
    第二周 2.5小时 40行 求华氏温度 printf的使用方法
    第三周 4.5小时 80行 分段函数的编写 if-else不能灵活使用
    第四周 2天 90行 循环语句for的使用 不会正确的变形,理不清题意
    第五周 2天 200行 水仙花数的表示方法;个位数字平方和的表示方法 对陌生的概念不太了解,难以正确编程
    第六周 2天 260行 if与else语句与for语句的综合使用,逻辑运算符,字符型char 题意与如何构思能力还有待提高
    第七周 2天 220行 switch语句的使用,以及一些常见的格式 不能正确的编程,如何解决问题的能力还有待提高
    第八周 2天 230行 如何用do-while语句和while语句,并区分与for语句的不同地方 题意还是不能完全读懂,难以正确的编程
    第九周 3天 280行 如何使用for语句的循环嵌套结构,并学了break与coutinue之间的区别 题意还是不能完全读懂,题意与如何构思能力还有待提高
    第十周 3天 300行 if-else,coutinue,break,for循环嵌套的综合应用 难以编程出与题意相符的代码,如何解决问题的能力还有待提高
    第十一周 4天 400行 函数的定义与调用,全局变量和局部变量的定义,变量的生存期及作用域 如何调用函数,怎样区分局部变量和全局变量

    3.2 累积代码行和博客字数

    思维导图:

    内容总结:

    • 明白一些常见的错误类型,如答案错误表示与题意输出的内容不符或输出的结果不同,编译错误常见的问题是标点符号不打或打错,运行超时的常见问题是输入了不要输入的内容,多种错误常见的问题是多定义了一些没有用到的变量,且再编程上还出现了语法错误;
    • 学会如何用整型,浮点型,字符型定义变量,并学会用从字符A开始的语句,运用for语句的循环嵌套结构解题;
    • 函数的调用和定义是一个难点,全局变量和局部变量怎样区分,静态变量和动态变量的区别;
    • 数据区分为静态存储区和动态存储区,其中自动变量只能在函数内或复合语句中;

    3.3感悟:

    • C语言是一门语言,要想学好学会就要多加练习,要从本质上分析问题并解决问题
    • 学习过程中会遇到一些难题,这时就离不开老师与同学的帮助,多问还是有必要的
    • 做题过程中会遇到许多未学过的知识,这就需要我们多看课外书并预习课本上还没教的知识
    • 重要的是逻辑思维能力的培养,但又是一个难点,需要我们平时不断去摸索,运用所学的知识灵活的解决问题;

    3.4学习体会

    • C语言中如何正确使用for语句的循环嵌套结构和coutinue,break的综合应用,对于初学的我只能不断搜集资料;
    • 函数的调用和定义把前面所学的知识都汇聚到了一起,对于我们只能慢慢的去理解,多想想老师上课所讲的内容;
    • 有时我甚至连题意都没有弄懂,在同学的帮助下我还是明白了许多;
    • 在这门功课上,我们需花大量的时间来练习并巩固已学知识;
    • 同时我也希望老师在上课的时候多讲几个习题助于我们理解;
    • 当然我也会去图书馆去阅读一些相关资料来提升自己;
  • 相关阅读:
    AngularJS 最常用的八种功能
    angularJs自定义模块
    angularJs 购物车模型
    angularJs-未加载完成的页面显示混乱ng-bind
    angularJs-脏检查
    angularJs-控制器
    【转载更新】Linux工具之SED 2.应用实例
    【转载更新】Linux工具之SED 1.基础知识
    【转载更新】Linux工具之AWK 4.实例
    【转载更新】Linux工具之AWK 3.高级知识
  • 原文地址:https://www.cnblogs.com/hunanloudi/p/11993139.html
Copyright © 2011-2022 走看看