问题 |
答案 |
这个作业属于那个课程 |
C语言程序设计II |
这个作业要求在哪里 |
作业链接 |
我在这个课程的目标是 |
学会并掌握C语言基本知识,能够相关C语言的各种代码 |
这个作业在那个具体方面帮助我实现目标 |
学会使用循环结构while和do-while结构 |
参考文献 |
C语言程序设计(第3版)、百度、360浏览器 |
1.PTA实验作业(20分/题)
1.1 7-1 求整数的位数及各位数字之和 (15 分)
题目内容描述:对于给定的正整数N,求它的位数及其各位数字之和。输入格式:输入在一行中给出一个不超过10的9次方的正整数N。输出格式:在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
1.1.1数据处理
数据表达: 用了n、i、count、sum这四个变量,其中i和count定义初始值为0,你通过scanf()函数来赋值,sum用来接收n%10的余数,都是整型变量;
数据处理:Beign(算法开始)
int n,i=0,count=0,sum;
输入n值
do{
sum=n%10; //sum接收n%10的余数
i++; //i每次循环累加1
count=count+sum; //count每次循环加上sum的值
n/10; //n除以10
}while(n!=0)//当n=0时循环结束
输出i和count的值
End(算法结束)
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 |
输出数据 |
说明 |
321 |
3 6 |
使用题目所给数据 |
32100 |
5 6 |
使用较大数据 |
10 |
2 1 |
使用较小数据 |
99999 |
5 9 |
随机数值 |
1.1.4 PTA提交列表及说明
提交列表说明:
1.答案错误:我用了if语句来判断n值是否超过10的9次方,结果答案错误,然后将其删掉;
2.部分正确:count的初始值没有定义初始值0;
3.答案正确:通过修正答案正确;
1.2 7-5 爬动的蠕虫 (15 分)
题目内容描述:一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。输入格式:输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。输出格式:在一行中输出蠕虫爬出井的时间,以分钟为单位。
1.2.1 数据处理
数据表达:运用了N,U,D,x,minute这五个变量,其中N,U,D是通过scanf()函数来赋值,x和minute定义初始值为0,这五个变量都是整型;
数据处理:Begin(算法开始)
int N,U,D,x=0,minute=0;
分别输入N、U、D的值
while x<N{ //当x的值小于N值是时,执行循环语句;
if x+U<N{
minute+=2; //minute循环加2
x+=U-D; //x循环加U-D}
else{
minute+=; //minute循环加1
x+=U; //x循环加U}}
输出minute的值
End(算法结束)
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 |
输出数据 |
说明 |
12、3、1 |
11 |
使用题目所给数据 |
5、2、1 |
7 |
使用较小数据 |
120、3、1 |
119 |
使用较大数据 |
120、30、10 |
11 |
放大题目输入数据10倍 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.编译错误:x没有定义初始值0;
2.部分正确:错把while的循环结束语句写x<N;
3.部分正确:出现逻辑错误,向上和向下没有完全弄清楚;
4.答案正确:通过改正并借鉴同学答案正确;
2.代码互评(5分)
同学代码截图
自己代码截图
不同之处:
1.while的终止条件不同;
2.第一个同学只用了if语句,而我用了ih-else语句;
3.时间的累加方式不同。
3.学习总结(15分)
。
3.1 学习进度条(5分)
周 |
这周所花的时间 |
代码行 |
学到的知识点简介 |
目前比较迷惑的问题 |
第一周(9/17-9/22) |
5小时 |
43行 |
学会写最简单的代码 |
无 |
第二周(9/24-10/4) |
6小时 |
62行 |
学会温度转换 |
无 |
第三周(10/6-10/13) |
11小时 |
86行 |
学会写函数程序 |
不知道怎么在什么情况下调用scanf()函数 |
第四周(10/14-10/20) |
10小时 |
105行 |
for循环语句和循环结构 |
不知道定义多少个变量 |
第五周(10/21-10/27) |
10.5小时 |
114行 |
学会怎样去定义一个函数和它的基本格式 |
对于函数题的编程不知道该怎么样去设计 |
第六周(10/28-11/3) |
12小时 |
135行 |
学会二分支结构和if-else语句 |
对于输入一个正整数,然后输入对应数量的数值的代码编写存在迷惑 |
第七周(11/4-11/10) |
13.5小时 |
173行 |
学会怎样用switch简化代码的复杂性 |
使用switch语句时怎么能够很好的与其他语句很好的衔接 |
第八周(11/11-11/17) |
10小时 |
157行 |
学会使用do-while语句和while语句 |
while后面的循环结束执行条件该如何判定 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
本周我们学习了while语句和do-while语句,它们都可以实现循环,前面已学习了for循环,但是与for循环的不同是while循环是循环结束执行条件,而for循环是明确循环次数,而且它们的语句结构的学习也非常简单,有相似之处,也有不同之处。
3.3.2 学习体会
这一次的PTA作业我自认为第一个和第四个比较好做,其它三个题目难度系数比较大,因为我对进制的编写感觉有困难,但是我通过数学思想转换来编写能够部分正确,既有欣喜,又有忧愁,因为我没有全对,那就是错的。但是我去网上搜索到的答案完全截然不同,还用了字符变量,而我对字符变量不怎么了解,所以我必须要加强这方面的知识,因为这对以后解题会有帮助的。另外,这次作业博客字数和代码行数有所下降,还需努力,加油吧!!!