C语言I博客作业07

作业头

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11591
我在这个课程的目标是 学习并掌握while结构
这个作业在那个具体方面帮助我实现目标 精选的PTA题目和博客中代码之间的对比
参考文献 《C语言程序与设计》,百度
学号 20209057

1.PTA实验作业(20分/题)

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

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

1.1.1数据处理

数据表达:用了n,count,sum整形变量来表示相关数据;
数据处理:如果(n>0){
sum=sum+n%10;
n=n/10;
count++;
}
输出("%d %d",count,sum);
结束;
}

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
321 3 6 题目原数据,检验三位数
26 2 8 检验两位数
20 2 2 检验两位数中个位数是0的数
5 1 5 检验一位数

1.1.4 PTA提交列表及说明


遇到的问题:大致的思路还是有的,就是总是出现语法错误;
解决方法:根据系统提示找到错误信息并改正。

1.2 循环-古角猜想

日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。
输入格式:
输入一个自然数n
输出格式:
输出每次运算步骤,直到结果为1.

1.2.1 数据处理

数据表达:定义了n,m整形变量来表示相关数据;
数据处理:读取数值scanf();
如果(n!=1){
if(n%2==0){
m=n;
n=n/2;
输出("%d/2=%d\n",m,n);
}
else{
m=n;
n=3n+1;
输出("%d
3+1=%d\n",m,n);
}
结束;
}

1.2.2实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
5 5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 题目原数据,检验一位数奇数
6 6/2=3 33+1=10 10/2=5 53+1=16 16/2=8 8/2=4 4/2=2 2/2=1 检验一位数偶数
16 16/2=8 8/2=4 4/2=2 2/2=1 检验两位数偶数
15 153+1=46 46/2=23 233+1=70 70/2=35 353+1=106 106/2=53 533+1=160 160/2=80 80/2=40 40/2=20 20/2=10 10/2=5 5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 检验两位数奇数

1.2.4 PTA提交列表及说明


问题:拿第一题练了手后,做这道题犯的错少了很多,除了一点语法错误之外没其他问题;
解决方法:根据系统提示找到错误信息并改正。

2.代码互评(5分)

同学代码

我的代码

不同点:TA的使用了pow函数来限制变量的取值范围,我的没有,从中发现到自己的不足之处,并做出了改正。

同学代码

我的代码

不同点:TA用了if语句把等于1的情况写了出来,而我的没有,相对来说我的要简略一些。

3.学习总结(15分)

3.1 学习进度条(5分)

时间 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第六周 6~7个小时 244 if分支结构和switch 看到很大段的题目就不想做;思路不是很清晰,其他的都还好
第七周 9个小时 230 while3.3.2 学习体会语句do-while语句 极个别还行,其他大题都很头疼,没什么思路

3.2 累积代码行和博客字数(5分)


3.3 学习内容总结和感悟(5分)

3.3.1 学习内容总结

3.3.2 学习体会

头晕。。。。。。
这周学的新知识不太会运用,题目有那么一两个会做,其他的真的难搞。
一看到字数很多的题目我就开始慌。。。。。
学习了do-while语句,了解其使用的条件及方法。

posted @ 2020-12-07 16:35  不灵不灵的阿仙  阅读(79)  评论(1)    收藏  举报