zoukankan      html  css  js  c++  java
  • C语言博客作业02--循环结构

    0.展示PTA总分(0----2)


    1.本章学习总结(2分)

    1.1 学习内容总结

    • 循环语句

      • while循环语句:
        while(表达式)
        循环体语句;
      • do-while循环语句:
        do{
        循环体语句
        }while(表达式);
    • 控制循环语句

      • break
        功能:结束循环。
        适用范围:循环语句和switch语句。
      • continue
        功能:跳过后面语句继续循环。
        适用范围:仅循环语句。
    • 特殊循环结构(嵌套循环)

    • 循环语句的应用

      • 用格雷戈里公式求π的近似值//while循环语句
      • 统计一个整数的位数//do-while循环语句
      • 判断素数//break语句
      • 求1!+2!+...+100!//嵌套循环结构

    1.2 本章学习体会

    C语言的基本语法较容易掌握,但同时也容易忽视细节,造成细节上的错误。因此在学习C语言初期需要认真细致地去写好每一个代码,至每一条语句,才能为后期打好良好的语法基础。在不断的学习中发现C语言是一种很注重一个人的逻辑思维能力的语言学科,随着代码量的不断增加,自己的逻辑思维能力也在不断得到增强。其关键就是,要学会C语言,就必须要投入足够的精力和时间。

    PTA题集 c03-单循环结构 c04-嵌套结构 总计
    代码量 493 562 1055

    2.PTA实验作业(6分)

    2.1 7-11 简单计算器 (20 分)

    2.1.1 数据处理

    定义整型变量a放第一个数字,b放后面的数字,c放计算结果。定义字符变量n放运算符。
    while((n=getchar())!='=')
    输入下一个数字
    if 在除法的情况下除数为0或符号不为加减乘除 then
    printf("ERROR ")
    返回0
    end if
    end while
    switch(n){
    选择对应运算符进行运算
    运算符不为加减乘除 thenf
    printf("ERROR ")
    返回0
    将c的值赋给a
    输出a

    2.1.2 代码截图

    2.1.3 造测试数据

    输入数据 输出数据 说明
    1+2*10-10/2= 10 正常数据
    8/0= ERROR 除数为0
    5%7-2= ERROR 符号错误

    2.1.4 PTA提交列表及说明

    提交列表说明:

    1.部分正确:没有考虑除法情况下除数为0的请客。
    2.部分正确:在除数为0或运算符不正确 的情况没有使用break语句来结束程序。
    3.全部正确:。。。

    2.2 7-2 梅森数 (20 分)

    2.2.1 数据处理

    定义整型变量num放需要判断的数字,i放赋值给num的表达式中的指数,j放判断num是否为素数的除数,f放范围内素数的个数。
    for(i=2;i<=n;i++)
    将表达式pow(2,i)-1的值赋给num
    判断num是否为素数
    若不是,则退出循环
    当循环判断结束时,即num为梅森数时
    输出num的值
    f++
    end if
    end for
    end for
    如果该范围内没有梅森数
    输出None

    2.2.2 代码截图

    2.2.3 造测试数据

    输入数据 输出数据 说明
    6 3 7 31 正常数据
    1 None 范围内无梅森数

    2.2.4 PTA提交列表及说明

    提交列表说明:

    1.部分正确:在判断出num不为素数的情况下没有使用break语句跳出循环。
    2.部分正确:没有考虑到当(j>sqrt(num))的情况下输出num。
    3.全部正确:。。。

    7-6 水仙花数 (20 分)

    2.3.1 数据处理

    定义整型变量i放判断的数,x放n位数的最小值,y放n位数的最大值,t放i的值并加入下面的计算,tt放每位数的n次方的值,sum放每位数的n次方的值的和。
    for(i=0;i<n-1;i++)
    算出范围内的最小值并赋给x
    for(i=0;i<n;i++)
    算出范围内的最大值并赋给y
    for(i=x;i<y;i++)
    结合while循环计算出每位数的n次方的值的和
    end for
    if(和的值与判断的数值相等)
    输出该数的值
    进入下一轮循环
    直到判断完范围内最后一位数为止
    返回0

    2.3.2 代码截图

    2.3.3 造测试数据

    输入数据 输出数据 说明
    3 153 370 371 407 正常数据
    1 无输出

    2.3.4 PTA提交列表及说明

    提交列表说明

    1.运行超时:计算每位数的n次方的值的和时,其中的while语句括号内条件m没有进行每一轮的减一运算,应该为m--。
    2.运行超时:进入下一轮while循环前没有将t的值减少一位,应添加语句t=t/10.
    3.答案正确;。。。

    3.代码互评(2分)

    7-2 梅森数 (20 分)


    (上面为朱同学的代码,下面为我的代码。)
    对比报告:朱同学善于应用新知识,思路清晰,且新知识应用得当,我则偏向于使用近期所学的知识进行解题;朱同学的代码量较大,我的代码量则较为简短。

    7-7 换硬币 (20 分)


    对比报告:朱同学习惯把变量定义放置到不同的行位,我则习惯把变量定义在同一行;朱同学善于应用嵌套循环判断语句,而我在循环内部很少再加入过多的语句。

  • 相关阅读:
    简单理解ThreadLocal原理和适用场景
    Portal实现原理
    Spring cloud微服务实战——基于OAUTH2.0统一认证授权的微服务基础架构
    Java8中 Date和LocalDateTime的相互转换
    sonar rule
    图论篇2——最小生成树算法(kurskal算法&prim算法)
    图论篇1——图的基本概念
    数论篇6——欧拉函数
    数论篇5——数论四大定理
    数论篇4——逆元(数论倒数)
  • 原文地址:https://www.cnblogs.com/yushanbaiyi/p/11707370.html
Copyright © 2011-2022 走看看