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

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

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

    1.1 学习内容总结##

    • for语句,do-while语句,以及while语句三种语句的嵌套循环。
      • 三种语句可以嵌套使用,解决复杂问题。在嵌套循环中,如果要遇到一个break,只能结束当前的循环,并不能结束所有循环,如果要结束所有循环,必须每层都要加一个break,称为接力break,或者用goto语句,直接跳到想要去的地方;如果遇到continue,则只是结束本轮的循环,还会进行下一轮的循环。break可以用于循环,也可用于switch,但continue只能用于循环。

      • for语句的一般形式为:
        for(表达式1;表达式2;表达式3)
        循环体语句
        其中表达式1是初值表达式,对循环变量赋初值;表达式2是条件表达式,给出循环的条件;表达式3是步长表达式,改变循环变量的值,帮助走出循环。注意for语句后面不能随意加分号。

      • do-while语句一般形式为:
        do {
        循环体语句
        }while(表达式)

      • while语句一般形式为:
        while(表达式)
        循环体语句;

      • 三者的区别在于do-while无论条件是否成立,都会事先做一次循环。
        三种循环体语句,都可以解决循环问题,在一定情况下可以互换,for语句一般用在循环次数已知或者有明显规律的题型中,另外两种则适用于循环次数未知。

    1.2 本章学习体会##

    • 又通过这两周的学习,我感觉又收获了好多,知识点虽然知道的比以前多了,但应用起来,还是很乏力,就拿PTA的题来说,总是一道题做的非常慢,要想好久才能想出来,感觉有点累了,并且PTA的习题集有点跟不上了,感觉C语言的作业慢慢多了起来,因为还要复习预习课本,并且还有高数和线代,所以这周学起来感觉有点乏力,总感觉时间不够用,我不敢说我100%都在学习,但起码我70%还是有的,可感觉时间还是不够用,可能我需要更加努力了。通过这两周,我主要想知道PTA,C语言题目是不是一个类型一个类型的,我找不到分类,对一个题不知道它是什么类型的,该用哪种方法做,不知道方法,还有一个就是,尽管PTA的题目过了,但如果上午过的,到下午好像就没什么印象了,老是记不住,还得重新思考。
    • 这两周的代码量706。

    2.PTA实验作业(6分)#

    **2.1 最佳情侣身高差 **##

    2.1.1 伪代码###

    定义变量N为前来查询的用户数量,ch判断性别,h为一方身高,H为另一方身高。
    输入查询用户数
    while(N--)
               输入一个字符和一方身高
               判断性别并计算另一方身高
               输出另一方身高
    end while
    

    2.1.2 代码截图###

    2.1.3 造测试数据###

    输入数据 输出数据 说明
    2 M 1.75 F 1.8 1.61 1.96 sample等价
    2 M 1.00 F 3.0 0.92 3.27 最高、最矮的男女生
    1 M 1.09 1.00 最小N,正好整除

    2.1.4 PTA提交列表及说明###

    1.部分正确:是因为输出格式错误,忘了打回车键,没有换行。
    2.部分正确:答案错误,测试了一下发现确实是,当最高、最矮的男女生和最大N,随机数据是错误。
    3.答案正确:我把字符和身高分别输出,不放一起,结果就对了。
    

    2.2求n以内最大的k个素数以及它们的和##

    2.2.1 伪代码###

    定义变量n,k分别为素数的范围和个数,若不够k则按实际输出,count为真正素数的个数,K存储k的值,i用于判断是否为素数,sum为素数的和。
    输入n和k,并把k的值存到K中
    for (; n >= 2 && k > 0; n--)
        判断是否为素数
        记录素数的个数
        判断素数个数是否够k个
        按不同情况输出“n的值”或“n的值+”并计算sum
    end for
    最后输出=sum的值
    

    2.2.2代码截图###

    2.2.3 造测试数据###

    输入数据 输出数据 说明
    1000 10 997+991+983+977+971+967+953+947+941+937=9664 最大数据
    12 6 11+7+5+3+2=28 不足k个素数
    10 1 7=7 最小数据
    15 6 13+11+7+5+3+2=41 正常数据

    2.2.4 PTA提交列表及说明###

    1.部分正确:少考虑了当k正好是素数的个数的情况。
    2.答案正确:把k刚好为素数的个数的情况加上去就对了。
    

    2.3单词长度##

    2.3.1伪代码###

    定义变量ch为输入的字母及其他字符,item判断是否为第一个单词,flag判断空格,i用于计单词长度。
    while((ch = getchar()) != '.')
                   if字符不等于空格 then
    			flag = 1
    			i++
    		else if (flag == 0)
    			继续下一轮循环
    		else if (item == 0)
    			输出i的值
    			i = 0;
    			flag = 0;
    			item = 1;
    		else
    			输出i的值
    			i = 0;
    			flag = 0;
                    end if
    end while
    	if (i && item == 0)
    		输出i的值
    	else if (i)
    		输出i的值
    	end if
    

    2.3.2代码截图###

    2.3.3 造测试数据###

    输入数据 输出数据 说明
    It's great to see you here. 4 5 2 3 3 4 sample等价
    she. 1 一个单词
    She is a good girl . 3 2 1 4 4 开头结尾多空格
    He is her friend. 2 2 3 6 连续多个空格

    2.3.4 PTA提交列表及说明###

    1.部分正确:最后一次输出时,少输出了一个空格。
    2.部分正确:当一个单词时,多输出了一个空格。
    3.答案正确:最后多加一个条件,要求输出不带空格的,然后就对了。
    

    3.代码互评(2分)#

    同学代码截图##

    自己代码截图##


    1.我用的是if-else的分支,他用的是if语句的嵌套,显然嵌套的话,就比较简单明了,增加了可读性。

    同学代码截图##

    自己代码截图##


    1.我把跑的过程中的规律找了出来,类似解一个数学问题,而他的代码是利用for循环来解决路程问题。
    2.我的代码写出来要费时间找规律,而他的则根据逻辑,找了一个循环来做这件事,省时省力。

  • 相关阅读:
    【elementUI系列】在elementUI中新建FormData对象组合上传图片和文件的文件对象,同时需要携带其他参数
    sau交流学习社区—vue总结:使用vue的computed属性实现监控变量变化,使用vue的watch属性监控变量变化从而实现其他业务
    Docker Hub工作流程-Docker for Web Developers(6)
    用Markdown格式写一份前端简历
    使用Dockerfile构建镜像-Docker for Web Developers(5)
    掌握Docker命令-Docker for Web Developers(4)
    Docker基于已有的镜像制新的镜像-Docker for Web Developers(3)
    使用Docker-Docker for Web Developers(2)
    运行第一个Docker容器-Docker for Web Developers(1)
    前端学习杂谈
  • 原文地址:https://www.cnblogs.com/wangtianxue/p/11706751.html
Copyright © 2011-2022 走看看