C语言I博客作业08
一.本周作业头
这个作业属于那个课程|C语言程序设计II
--|--|--
这个作业要求在哪里|作业链接
我在这个课程的目标是|掌握和熟悉C语言的各种结构和语句
这个作业在那个具体方面帮助我实现目标|更加熟悉三种循环语句
参考文献|C语言程序设计,PTA
二.本周作业
1.PTA实验作业
1.1求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和。
1.1.1数据处理
- 数据表达:用到的变量N,count,sum;变量均为整型;
- 数据处理:
int N,count=0,sum=0;//定义变量N数字,count位数,sum位数之和
scanf("%d",&N);
while(N!=0)//循环条件数字不等于0
count++;//位数加一
sum=sum+N%10;//位数之和 等于 位数之和 加 数字除以十取余
N=N/10;//数字N等于数字N除以十取整
printf("%d %d",count,sum);//输出位数和位数之和
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
430 | 3 7 | 为三位数,位数之和为7 |
1610 | 4 8 | 为四位数,位数之和为8 |
79277 | 5 32 | 为五位数,位数之和为32 |
1.1.4 PTA提交列表及说明
- 部分正确:没有注意输出格式,在输出时没在%d之间添加空格。
1.2 题目 韩信点兵
在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
- 按从1至5报数,记下最末一个士兵报的数为1;
- 再按从1至6报数,记下最末一个士兵报的数为5;
- 再按从1至7报数,记下最末一个士兵报的数为4;
- 最后按从1至11报数,最末一个士兵报的数为10;
请编写程序计算韩信至少有多少兵。
1.2.1 数据处理
- 数据表达:用到的变量number,且变量的类型为整型;
- 数据处理:
int number;//定义变量number
for(number=1;;number++)//for循环,初始量number为1,每执行一次number加一
if((number%51)&&(number%65)&&(number%74)&&(number%1110))//循环体,循环条件,士兵数满足这四种报数方式
printf("%d",number);//输出士兵数number
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
无输入数据 | 2111 | 至少拥有的士兵数为2111 |
1.2.4 PTA提交列表及说明
- 运行超时:将return 0;写到了循环体的后面;
- 编译错误:for循环中的语句少加了一个分号。
2.代码互评
同学代码
我的代码
1)这位同学比我多定义一个变量:digit,digit在我的代码中代表N%10,数字除以10求余;
2)这位同学用的是do-while的循环结构,先执行在写循环条件;特别注意的是while语句写完循环条件之后要加分号;
3)这位同学还考虑了如果输入的数字为负数的话将数字变为正数。
3.学习总结
3.1 学习进度条
周/日期|这周所花的时间|代码行|学到的知识简介|目前比较迷惑的问题
--|:--😐:--😐:--😐:--😐--:
10/9--10/12|三天|75+|编写分支结构if-else语句,浮点型数据类型和scanf语句函数|平方根函数和幂函数的使用,双精度浮点型数据类型的使用
第四周/10-16到10-18|一天|100+|“for”循环结构语句,累加求和|分母的累加不熟练,有正负交替的求和不怎么会
第五周/10-23—10-25|一天| 90|调用函数先定义在调用|定义函数与调用函数的格式不熟练,主调函数与被调函数不清楚
第六周/10-30--11-2|一天| 120 |字符型数据的输入和输出,逻辑表达式|不熟悉逻辑运算符和逻辑表达式
第七周/11-6——11-8|一天| 90 |switch语句,case后必须为常量表达式|switch后的表达式是否有要求
第八周/11-13——11-15|一天|75|循环结构,for语句,while语句和do-while语句,及其三者的区别适用情况|不知道关于二进制和十进制的知识
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
本周学习了三种循环结构,for语句,while语句和do-while语句,三种语句适用于不同的情形。上周刚刚觉得能体会到其中的乐趣,这周的作业又看不懂题目,而且不懂关于二进制和十进制的知识,不知如何判断,和两者之间的转换。