||
---|:--😐:---
这个作业属于那个课程|C语言程序设计II
这个作业要求在哪里|C语言I博客作业08
我在这个课程的目标是|掌握老师所教知识,熟练自学知识
这个作业在那个具体方面帮助我实现目标|运用while语句解决无限循环问题
参考文献|《C语言教材》数组的用法
一、PTA作业(20分/题)

1.1求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式;
输入在一行中给出一个不超过1000000000的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6
1.1.1数据处理
数据表达:我定义了数组长度66位数组s,整形i,N,sum其中sum用于累加各位数之和。
数据处理:义整型变量N, i, sum,sum收集余数,i用于for循环,其循环次数表示N的位数。
do
{
i循环记录n的位数
{
s[i]收集n除以10的余数;
让N等于除以10的整数部分;
sum用于累加各位数之和
}
输出i,sum(i为位数,sum为各位数之和)
end
}
1.1.2实验代码截图

1.1.3 造测试数据
||
-|-|-|
输入数据|输出数据|说明
59120|5 17|这是个5位数,各位数字之和为17
520 |3 7|这是个3位数,各位数字之和为7
999 |3 27|这是个3位数,各位数字之和为27
1.1.4 PTA提交列表及说明

答案错误:两次错误都是输出的时候将'i'与'sum'位置放反了
1.2整除光棍
这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字 n 是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。
提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比如,程序输入31,那么就输出3584229390681和15,因为31乘以3584229390681的结果是111111111111111,一共15个1。
输入格式:
输入在一行中给出一个不以5结尾的正奇数x(<1000)。
输出格式:
在一行中输出相应的最小的 s 和 n ,其间以1个空格分隔。
输入样例:
31
输出样例:
3584229390681 15
1.2.1 数据处理
数据表达:定义整型变量x=0,n=0,num=1,i=0,x为输入的数,num用于算光棍数除以x的,n用于计算光棍的位数.
数据处理:定义整型变量x,s,n,x为输入的数,num用于算光棍数除以x的值,n用于计算光棍的位数。
DO
输入x;
WHILE (num/x>0||i)
在i后面加1;
END WHILE
IF(num%x==0)
++n //循环前n先自加如:比如 n=3;cout<<n++<<endl;此时输出3,n的值为4。cout<<++n<<endl;此时输出4,n的值为4。
跳出循环
ELSE
num等于光棍数除以x
num等于num乘以10加1
n累加
END IF
END
1.2.2 实验代码截图

1.2.3 造测试数据
||
---😐:--😐:---
输入数据|输出数据|说明
31|3584229390681 15|所得的光棍数除以31为3584229390681且光棍的个数为15
99|1122334455667789 18|所得的光棍数除以99为1122334455667789且光棍个数为18
1.2.4 PTA提交列表及说明

在dev-c++上编译错误:把i用于while后边括号里的循环条件,后边改成sum或者1就对了,其实都一样,定义的时候就是sum=1。
2.代码互评(5分)
同学代码(吴佳柳)

我的代码

1.我定义了4个变量,而他定义了3个,但他的代码并不比我简单,就算他代码比我少个7,8行。
1.他是先用一个while把光棍数加到大于输入的数,再进行取整输出,我是while里if判断num/x与0和i的大小。
同学代码(柏朝晖)

我的代码

1.我的的代码是是比较井的深度与爬行距离的大小,在while语句里用if-else讨论如果能爬上去则只加一分钟,不能则再加上休息的时间,反之要加上休息的距离。
2.他的代码是sum来记录爬行的距离,如果sum加一分钟爬行的距离大于井口到其头部的距离则跳出循环,不然爬行的距离减去休息下降的距离,加一分钟。
三、学习总结(15分)
3.1 学习进度条(5分)
||
---|:--😐:--😐:--😐---
周/日期|这周所花的时间|代码行|学到的知识点简介|目前比较迷惑的问题
第六周|21小时|247行|如何用 MinGW-w64 来编译C程序|无
第七周|7小时|118行|二分支结构|无
第八周|6小时|100行|掌握使用for循环语句实现指定次数的循环程序设计|无
第九周|9小时|124行|学会使用自定义函数|对于函数的返回,不是很理解
第十周|16小时|216行|字符型数据类型和自定义函数|对字符型不怎么了解
第十一周|20小时|258行|学习了switch语句|对switch后边括号里的变量怎么定义
第十二周|8小时|198行|自己摸索了下数组,学习了while语句|对括号内定义不明确
3.2 累积代码行和博客字数(5分)

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

3.3.2 学习体会
1.这周上课学习了while与do-while语句,还知道了while与if-else语句的区别,实际运用起来却并非如自己所愿,是练习手的缘故吧。
2.学习的东西越来越多,感觉自己有点乱了,准备花时间整体从头过一过。
3.对于pta作业感觉思路有不知如何开展,做完以后最自己做出来的东西甚至有点陌生。

浙公网安备 33010602011771号