C语言I博客作业08

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/9978
我在这个课程的目标是 很好的编写程序,提高自己的准确率和速度
这个作业在那个具体方面帮助我实现目标 通过PTA上的代码作业让我发现自己的错误并不断改正
参考文献 《C语言程序设计》,CSDN编程社区,《提问的智慧》

一、PTA实验作业

我的排名

C语言I博客作业08_第1张图片

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

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

    1.1.1数据处理

  • 数据表达:变量“N,number,count,a,i”;变量值的来源“赋值运算,算术运算”;变量类型“都是整型变量int”
  • 数据处理:表达式“N=N/10,count++;numer+=a%10,a=a/10,i++”;流程结构“分支结构,循环结构”

    1.1.2实验代码截图

    C语言I博客作业08_第2张图片

    1.1.3造测试数据

    输入 输出 说明
    321 3 6 检验代码可运行输出正确答案
    53186961 8 39 这组数据的位数为8位数,其各位数字之和为39
    101012400000 12 9 表示这组数据的位数为12位数,其各位数字之和为9
    9 1 9 这是一个个位数,因此数据的位数为一,其各位数字之和就是其本身

    1.1.4PTA提交及列表

  • 刚开始写的时候忘记了在输出时数据之间要空格,然后写完在看题目的时候发现了,就在输出时加了空格,还有就是写到一半才考虑到只输入一个数字的情况,于是有增加变量来计算只输入一个数字的情况。

    2.1 整除光棍

  • 这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由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

    2.1.1数据处理

  • 数据表达:变量“x,s,n,y”;变量值来源“赋值运算,算数运算”;变量类型“都是整型变量int”
  • 数据处理:表达式“s=s10+1,n++;s=y10+1,n++”流程类型“分支机构,循环结构”

    2.1.2实验代码截图

    C语言I博客作业08_第3张图片

    2.1.3造测试数据

    输入 输出 说明
    31 3584229390681 15 输入题目给出的相同示例,表明程序可以得出正确答案
    11 34278 6
    23 2433635455 12
    7 214 2

    2.1.4PTA提交列表及说明

  • 编译错误:打的太快了把stdio写成了sdtio,while后面忘记加分号了,输出数据n时忘记要与前面的数据之间有空格
  • 改正方法:把sdtio改成stdio,在while后面加上“;”,在输出n时加一个空格在%d前面。

    二、代码互评

    同学1代码

    C语言I博客作业08_第4张图片

    我的代码

    C语言I博客作业08_第5张图片
  • 1.这为同学用的是while语句对题目要求的数值进行计算,而我则是先用do-while对数的位数进行计算在用while语句对各个位数上的数值相加语句,这样看来该同学的代码更巧妙且代码会简短一些;
  • 2.我的代码将如果输入的数据是负数或个位数的情况单独列了出来,都是看过了该同学的代码发现其实不单独拿出来也可以满足表达式的要求。

    同学2代码

    C语言I博客作业08_第6张图片

    我的代码

    C语言I博客作业08_第7张图片
  • 1.这位同学的for循环是从0开始的,而我是从1开始的,但结果是一样的
  • 2.这位同学的代码和我的并没有什么不同,都是用for语句循环

    三、学习总结

    3.1学习进度条

    周/日期 这周所花时间 代码行 学到的知识点的简介 目前比较迷茫的问题
    8/12-8/16 22小时 126行 学习了do-while和while语句,并运用该循环语句进行代码的编写 不懂怎样表达“当输入回车键时,输入结束”这个语句

    3.2累积代码行和博客数

    C语言I博客作业08_第8张图片

    3.3学习内容总结和感悟

  • 3.3.1学习内容总结
    C语言I博客作业08_第9张图片
  • 3.3.2学习体会
  • 通过这个礼拜的学习,学习了do-while和while的循环语句,在写PTA的一个题时要求“当输入回车键时,输入结束”,而这个我就蒙了,百度之后好像有一点懂了,需要用字符来进行表达,但试了几次都不对,所以感觉好无奈啊!不过现在做题会有意识的当写完代码之后看一遍看哪里有问题,改了在提交,这也让出错的概率会减少,同时也让自己更加严谨。

你可能感兴趣的:(C语言I博客作业08)