C语言作业|08

二次信任 提交于 2019-12-04 13:33:24
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I作业08
我在这个课程的目标是 熟练掌握C语言
这个作业在那个具体方面帮助我实现目标 在PTA上老师布置的类型作业
参考文献 Markdown基本语法

一、PTA实验作业排名

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

对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过十的九次方的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6

1.1.1 数据处理

数据表达:用了整形变量N, a, i = 0, sum = 0;
sum表示各位数字之和,i表示它的位数,
数据处理:用了while语句,
用了表达式sum += a % 10除以10取余数
用了表达式 a /= 10除以10取余数
用了表达式 i++使用i之后再加一

伪代码

int main(void)
{
int N, a, i = 0, sum = 0;
scanf("%d", &N);
a = N;
while (a)
{
sum += a % 10;
a /= 10;
i++;
}
printf("%d %d\n", i, sum);
return 0;
}

1.1.2 实验代码截图


输入数据| 输出数据|说明
-|-|-
33|3 6|33它的位数是2及其各位数字之和是6
356|3 14|356它的位数是3及其各位数字之和14
466|3 16|466它的位数是3及其各位数字之和是16

1.1.4 PTA提交列表及说明

提交列表说明:

在编译器中提前编译,所以没有错误

1.2爬动的蠕虫

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

1.2.1 数据处理

数据表达:用了整形变量N,U,D,L,t下滑了D寸,m表示高度,N表示深为N寸,向上爬U寸
数据处理:用了while语句和if语句,
用了表达式t表示时间的变化;
用了表达式 m=m+U表示蠕虫爬的高度;
用了表达式 m>=N,break;m=m-D;t++;表示蠕虫爬出的时间
伪代码

include<stdio.h>

int main()
{
int N, U, D, t, m;
scanf("%d%d%d", &N,&U,&D);
m=t=0;
while(m<N){
t++;
m=m+U;
if(m>=N)
break;
m=m-D;
t++;
}
printf("%d",t);
return 0;
}

1.2.2 实验代码截图


1.2.3 造测试数据
输入数据| 输出数据|说明
-|-|-
15 5 3|11|深为15寸的井,蠕虫每1分钟可以向上爬5寸,蠕虫需要11分钟才能爬出井
10 5 2|5|深为10寸的井,蠕虫每1分钟可以向上爬5寸,蠕虫需要10分钟才能爬出井
14 5 3|11|深为14寸的井,蠕虫每1分钟可以向上爬5寸,蠕虫需要11分钟才能爬出井

1.2.4 PTA提交列表及说明


编译错误:变量没有统一,时间t和m搞错了
编译正确:改了回来。

2.代码互评

同学代码

我的

同学的代码变量复杂一些,而且题目要求为N,所以觉得自己更接近题目要求。

学习总结

这周所花的时间代码行 学到的知识点简介
第五周 4小时 20行
第六周 8小时 27行
第七周 10小时 75行
第八周 12小时 120行
第九周 16小时 170行
第十周 20小时 210行
第十一周 22小时 320

3.3 学习内容总结和感悟

3.3.2 学习体会

感觉循环结构的运用度一般,但是循环结构容易理解,每次写循环结构只要把握好循环开始和终止条件就感觉比较容易,但是也离不开数学对题目的帮助。
do-while的结构运用不太熟练,以为感觉每次写do-while会很麻烦,还需要努力。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!