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循环语句的局限性就是循环次数确定,我从中也明白不要以偏概全,我还得加把劲努力学习才行。

posted @ 2019-11-14 21:47  凉瑾年  阅读(230)  评论(1编辑  收藏  举报