• C语言I博客作业08


    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 C语言I博客作业08
    我在这个课程的目标是 学会理解运用while语句以及深入了解do-while语句
    这个作业在那个具体方面帮助我实现目标 通过PTA作业和阅读教材并练习
    参考文献 《C语言教材》

    一、PTA作业

    1.1求整数的位数及各位数字之和

    对于给定的正整数N,求它的位数及其各位数字之和。

    输入格式:

    输入在一行中给出一个不超过10^9的正整数N。

    输出格式:

    在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。

    输入样例:

    输出样例:

    1.1.1数据处理

    数据表达:定义了整型int变量i,n,数组长度为10的s[10],以及sum;
    数据处理:运用for循环,将输入的数据通过数组s[10]收集余数,每循环一次,利用n/=10,对该数据的第下一位数取余,再循环时逐个加起来就等于sum的值。
    伪代码

    #include<stdio.h>
    int main()
    {
    	定义整型变量int i,n,s[10]容量为10个数字的数组;
    	输入scanf("%d",&n);
    	定义整型int 让sum = 0;
    	for(i=0;n>0;i++i循环来记录n的位数)
    	{
    		s[i]收集n除以10的余数;
    		让n等于除以10的整数部分,即从右边减少一位数;
    		sum 收集 s[i]的余数;
    	}
    	printf("%d %d",i循环次数即为输入n的位数,sum);
    	return 0;结束
    }
    

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    123 3 6 三位数 各位数之和为6
    1433223 7 18 七位数 各位数之和为18
    10086 5 15 五位数 各位数之和为15

    1.1.4 PTA提交列表及说明


    提交列表说明
    第二次答案正确:刚写完有点好奇正确了没,就没注意格式美观和对齐,所以稍微修改了一下,这个题没问题;

    1.2爬动的蠕虫

    一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?
    这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。

    输入格式:

    输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。

    输出格式:

    在一行中输出蠕虫爬出井的时间,以分钟为单位。

    输入样例:

    输出样例:

    1.2.1数据处理

    数据表达:定义整型int变量 N,U,D,t;
    数据处理:通过while循环语句套用2个if-else反复判断语句N与U的大小运算出时间t;
    伪代码

    #include <stdio.h>
    int main()
    {
    	int N,U,D,t=0;定义变量
    	scanf("%d %d %d",&N,&U,&D);输入数据
    	while(判断条件:当N大于0时)
    	{
    		如果if(N比U大)
                    {
    			t 变化情况1;
    		}
    		否则else
                    {
    			t 变化情况2;
    		}
    		如果if(N比U小或相等)
                    {
    			N距离井口剩余距离 = N-U上爬距离;
    		}
    		否则else
                    {
    			N距离井口剩余距离 = N-U上爬距离+D休息下滑;
    		}
    	}
    	printf("%d",t);输出时间t
    	return 0;结束
    }
    

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    10 5 2 5 井深为10寸 每1分钟可以向上爬5寸 休息1分钟又下滑了2寸的条件蠕虫爬出井要2分钟
    15 5 3 11 井深为15寸 每1分钟可以向上爬5寸 休息1分钟又下滑了3寸的条件蠕虫爬出井要11分钟
    36 9 4 13 井深为36寸 每1分钟可以向上爬9寸 休息1分钟又下滑了4寸的条件蠕虫爬出井要13分钟

    1.2.4 PTA提交列表及说明


    提交列表说明:没什么问题,就是数学运算分类讨论;

    二、代码互评

    同学(陈泽宇)代码:

    同学(孙梦娇)代码:

    我的代码:

    相同点:
    结构大致相同,输入变量,一个循环语句框架就表达完了题目意思;
    不同点:
    1、我和陈同学代码用的是for循环语句,而孙同学用的是while循环语句;
    2、陈同学的代码比我们的多一个#include<string.h>,由于我对字符型了解甚少,猜测是跟他表达式里的{0}或者'0'有些联系吧;
    3、我的代码定义的是整型数组,而陈同学定义的是字符型数组,孙同学用比较普遍的方法,但我的代码和孙同学的代码每个符号意思都差不多,而和陈同学的就差异有点大,因为我不了解字符型,所以不是很理解陈同学代码的意思,但是既然他对了,就有他的道理,我会回去再研究研究的。

    三、学习总结

    3.1 学习进度条

    |||||
    -|-|-|-|-|
    周/日期|这周所花的时间|代码行|学到的知识点简介|目前比较迷惑的问题|
    第七周|10小时|132行|常用的数学函数,if-else语句|函数的运算问题|
    第八周|13小时|156行|学会运用for循环语句和知晓DevcC++调试|对于DevcC++还是不大会用|
    第九周|12小时|145行|学会了函数定义和调用函数|对于函数的返回,不是很理解|
    第十周|12小时|150行|了解了逻辑运算符和ASCII代码|记不住逻辑运算符的意思以及ASCII代码|
    第十一周|5小时|70行|理解并运用switch语句,对数组有些了解|对于数组的使用还是不熟练|
    第十二周|8小时|121行|加深了while循环语句的理解,以及理解了数组的定义,还有对于do-while的使用|突然发现自己并不会使用函数写代码,有点迷|

    3.2 累积代码行和博客字数

    时间 博客字数 代码行数
    第五周 464 0
    第六周 1017 50
    第七周 1638 182
    第八周 2533 288
    第九周 3421 433
    第十周 4399 583
    第十一周 5051 653
    第十二周 5789 774

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    这周之前,我以外我已经掌握了循环语句,但是我上了课深入学习了while循环语句以及do-while循环语句之后,我发现我错了,不是什么循环结构都可以相互套用的,比如新学的do-while循环语句就是必须先循环一次,再进行条件对比,而其他两种循环语句都是先条件对比再判断是否循环,而且for循环语句的局限性就是循环次数确定,我从中也明白不要以偏概全,我还得加把劲努力学习才行。

  • 相关阅读:
    怎样做一个合格的程序猿
    error: No resource identifier found for attribute &#39;format24Hour&#39; in package &#39;android&#39;
    【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第五步)(4)
    Length of last word--LeetCode
    SmartController智能控制系统
    湘潭-1203-A simple problem
    android中检測网络连接状态简单总结
    AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的差别
    please set a system env PAODING_DIC_HOME or Config paoding.dic.home in paoding-dic-home.properties p
    与IBM的Lin Sun关于Istio 1.0和微服务的问答
  • 原文地址:https://www.cnblogs.com/pengjie20199484/p/11862803.html
Copyright © 2020-2023  润新知