C语言I博客作业08
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业08 |
我在这个课程的目标是 | 熟练掌握C语言 |
这个作业在那个具体方面帮助我实现目标 | 在PTA上各种题型的练习和老师布置的类型作业 |
参考文献 | 百度 |
一、PTA作业
1.1求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过十的九次方的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6
1.1.1 数据处理
数据表达:用了整形变量number, temp, i = 0, sum = 0;
sum表示各位数字之和,i表示它的位数
数据处理:用了while语句,
用了表达式sum += temp % 10除以10取余数
用了表达式 temp /= 10除以10取余数
用了表达式 i++使用i之后再加一
伪代码
include <stdio.h>
int main(void)
{
定义整形变量number, temp, i = 0, sum = 0
scanf("%d", &number);
temp = number;
while (temp) {
sum += 除以10取余数;
temp 除以10取商;
i++;
}
printf("%d %d\n", i, sum);输出它的位数及其各位数字之和
return 0;
}
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
28 | 2 10 | 28它的位数是2及其各位数字之和是10 |
327 | 3 12 | 327它的位数是3及其各位数字之和是12 |
527 | 3 14 | 527它的位数是3及其各位数字之和是14 |
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,time下滑了D寸,L表示高度,N表示深为N寸,向上爬U寸
数据处理:用了while语句和if语句,
用了表达式time表示时间的变化;
用了表达式 L=L+U表示蠕虫爬的高度;
用了表达式 L>=N,break;L=L-D;time++;表示蠕虫爬出的时间
伪代码:
include <stdio.h>
int main()
{
定义爬虫的高度,向上爬的寸数,下滑的寸数,井的深度
scanf("%d %d %d",&N,&U,&D);
定义爬虫需要的时间
time=L=0;
while(蠕虫的高度<井的深度){
time++;
L=L+U;
if(蠕虫爬的高度>井的深度)
退出
L=L-D;
time++;
}
printf("%d",time);输出蠕虫所需的时间
return 0;
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
15 6 2 | 7 | 深为15寸的井,蠕虫每1分钟可以向上爬6寸,蠕虫需要7分钟才能爬出井 |
13 4 2 | 11 | 深为13寸的井,蠕虫每1分钟可以向上爬4寸,蠕虫需要11分钟才能爬出井 |
14 5 3 | 11 | 深为14寸的井,蠕虫每1分钟可以向上爬5寸,蠕虫需要11分钟才能爬出井 |
1.2.4 PTA提交列表及说明
提交列表说明:
在编译器上提前编译,所以没有错误,在编译器上的错误已经记下
2.代码互评
同学代码截图
自己代码截图
该同学用了整形变量x,d,i,n,字符型数组s[100];我用了整型变量num,n,mask,i
该同学用了数组的知识点,而我只用了while语句和if语句的结合
结构上该同学的更加整洁美观,而我的有点复杂难懂
同学代码截图
自己代码截图
该同学的代码是分开列举距井口的距离是否大于零,距离井口的距离和一分钟内爬的距离的大小,最后输出时间;我的代码是判断蠕虫的高度和井口的距离,最后输出时间
该同学的代码整洁美观,更容易让人看懂,我的代码相较之下,有点复杂
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第六周 | 21小时 | 400行 | 如何用 MinGW-w64 来编译C程序 | 无 |
第七周 | 24小时 | 478行 | 运用if语句完成各种数学程序 | 对于&&的用法不了解,现在操作不熟练 |
第八周 | 20小时 | 349行 | 掌握使用for循环语句实现指定次数的循环程序设计 | 无 |
第九周 | 23小时 | 264行 | 学会使用自定义函数 | 目前不太熟练 |
第十周 | 22小时 | 167行 | 熟悉多分支结构、字符型数据类型和逻辑运算符 | 还没有完全熟悉 |
第十一周 | 18小时 | 150行 | 熟悉多分支结构switch语句的使用 | 无 |
第十二周 | 16小时 | 130行 | 熟悉使用while和do-while结构解决问题 | 目前还不太熟练 |
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第四周 | 525 | 50 |
第五周 | 645 | 100 |
第六周 | 645 | 400 |
第七周 | 2659 | 478 |
第八周 | 3586 | 597 |
第九周 | 4769 | 698 |
第十周 | 5897 | 787 |
第十一周 | 6289 | 897 |
第十二周 | 7594 | 1056 |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
学习c语言有一段时间了,越是学到后面越难,上周学习了分支结构的嵌套的又一个语句,这周学习了do while语句,并且知道了while语句,for语句和do while语句的区别,又增加了一项编码技巧,也学到了新的C语言知识,现在编代码时没有以前那么吃力了,但是仍然不太熟练,而且题目也越来越难了,我还欠缺很多的锻炼,也欠缺很多知识,我以后还需要更努力的去练习,花更多的时间在这里,朝着我的目标前进