这个作业属于那个课程 | 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会很麻烦,还需要努力。