C语言I博客作业07

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-2
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11589
这个作业的目标 学习while语句或者do-while语句并运用到代码编程中
学号 20208997

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

1.1 题目名1

找出一批学生的最高分

题目描述:

本题要求编写程序,找出最高分。

输入格式:

输入在一行中给出一系列非负整数,其间以空格分隔。当读到负整数时,表示输入结束,该数字不要处理。

输出格式:

在一行中输出最高分。

输入样例:

在这里给出一组输入。例如:

67 88 73 54 0 95 60 -1
输出样例:

在这里给出相应的输出。例如:

95

1.1.1数据处理

数据表达:本题变量为max,num;num的值通过输入得到,max的值通过与num比较得到;两者数据类型都为整型。
数据处理:运用do-while语句完成循环,表达式如下:
    int max,num;
do{
        if(max<num){
            max=num;
}while(num>=0);

伪代码如下:
定义变量max,num
使用do-while语句执行循环体语句if(max<num){
      使max等于目前循环的最大值   max=num;
再检查循环体条件,即while(num>=0);
当读到负整数,输入结束,输出最大值max。

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
99 76 88 45 32 -8 99 首位为最高分
66 77 88 99 -9 99 尾位为最高分
15 89 67 54 35 -6 89 中间分数为最高分
98 78 98 67 -9 98 分数中存在相同分数时输出在前面的那个

1.1.4 PTA提交列表及说明

提交列表说明:

部分正确:刚开始只使用if语句和for循环完成编程,但是提交时提示首位为最高分这一项错误,尝试修改,却还是相同问题。
解决方式:后来改用do-while循环语句与if语句结合,最终得到正确答案。

1.2 题目2

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

题目描述:

对于给定的正整数N,求它的位数及其各位数字之和。

输入格式:

输入在一行中给出一个不超过10
​9
​​ 的正整数N。

输出格式:

在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。

输入样例:

321
输出样例:

3 6

1.2.1 数据处理

数据表达:本题变量为N,c,sum;其中N通过输入得到,c,sum通过计算式得到;都定义为整型。
数据处理:运用了do-while循环语句,表达式为:
    int N,c,sum;
    do{
    sum=sum+N%10;
        N=N/10;
        c++;
    }while(N>0);

伪代码如下:
首先定义变量N,c,sum
c,sum的初始值都为0
运用do-while循环语句执行  
        do{
        scanf("%d",&N);
 求各位数字之和  sum=sum+N%10;
    令数位少一  N=N/10;
       求各整数的位数 c++;
        }while(N>0);
执行循环体后判断条件是否成立。

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
66800 5 20 五位数,各位数字之和为20
7546 4 21 四位数,各位数字之和为21
966 3 21 三位数,各位数字之和为21
0 0 0 数字0非正整数

1.2.4 PTA提交列表及说明

提交列表说明:

编译错误:开始时定义的变量符号为c,后来不知不觉中求位数时就变成了count,导致前后变量不一致。
解决方式:根据提示查看代码,改正错误。
编译错误:我使用的是d0-while语句,但是测试时提示while有错误。
解决方式:后来想起老师特别提醒过do-while语句中while条件后要加上分号,后改正。

2.代码互评(5分)

同学代码截图1

自己代码截图1

不同之处:
1.该同学使用的循环语句为while语句,我使用的循环语句为do-while语句。首先循环先后顺序有区别,while语句是判断循环条件后执行循环体,而do-while语句则与之相反。
2.其次是我定义的变量字母较多,整份代码看起来不如该同学简洁明了。

同学代码截图2

自己代码截图2

不同之处:
1.该同学运用了长整型定义变量,我的定义都为整型,他的思考更为严谨。
2.该同学运用的循环语句为while语句,我的则是do-while语句,不同的语句。
2.我的代码行改动较多,空行,空格,排布不整齐。

3.学习总结(15分)

3.1 学习进度条(5分)

周/时间 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周 5h 68 简单编程
第二周 15h 251 算数运算和赋值运算
第三周 25h 368 for循环语句的应用,浮点型的学习
第四周 26h 379 自定义函数和调用函数 对调用函数的应用还不够清楚
第五周 28h 356 分支结构中的if-else语句 对于使用分支结构的逻辑还不够清晰
第六周 30h 398 switch语句的学习和应用 对于题目中的逻辑先后问题还不太能理解
第七周 28h 346 while语句及do-while语句的学习及运用 这两种的具体循环点及循环特点

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

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

3.3.1 学习内容总结

3.3.2 学习体会

1.在这一周,又学习了新的知识,是循环结构中的while语句和do-while语句,老师讲的时候感觉不太难吧,但是到我自己去完成题目时就陷入疑惑了。
2.虽然有很多东西都不会,但是俗话说的好,学无止境,只要学就一定可以有收获的,我还是挺相信我可以的。
3.经过这么久的学习,我似乎已经习惯了这样的学习模式,这样的教学方式,习惯成自然,重复的训练会让我有所提升。
4.越往后面,一学期的时间越过越少,我就越慌,因为害怕考试,担心我目前所掌握的知识不足以支撑我完成考试,担心会挂科。

posted on 2020-12-07 10:39  Nieya  阅读(353)  评论(8)    收藏  举报