C语言I博客作业07

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-2
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11589
这个作业的目标 熟悉使用while和do-while结构解决问题
学号 20208965

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

1.1 题目名1求整数的位数及各位数字之和 (15分)

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

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

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

1.1.1数据处理

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

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

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
0 0 0 数字0非正整数
966 321 三位数,各位数字之和为21
7456 421 四位数,各位数字之和为21
66800 520 五位数,各位数字之和为20

1.1.4 PTA提交列表及说明

格式错误:printf("%d %d",x,z);题目说中间需要空格,我忘记打了。
编译错误:测试时提示while有错误。
解决方式:do-while语句中while条件后要加上分号,后改正。

1.2 题目2 购物(二)

用户购买了若干个商品(商品数不超过10),现在,他告诉你每件商品的价格,你计算出这些商品的平均价格。

输入格式:
若干个以空格间隔的实数(每个数不超过100000),以-1作为输入结束的标志。

输出格式:
一个实数,表示商品的平均价格,精确到小数点后两位。

1.2.1 数据处理

**数据表达**:x,y,z,a为双浮点型,x输入赋值,y,z,a初始化。
**数据处理**:表达式:z<-z+x;a<-z/y;
            流程结构:while语句,if-else语句。

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
890.78 2769.8 12300 3532.2 -1 4873.19 这些商品的平均价格
0 -1 0.00 商品数为0

1.2.4 PTA提交列表及说明

部分正确:开始把if语句放在while语句中,导致商品数为极端值时出错误。
部分正确:一开始将s=s+p的位置和第二个scanf的位置弄反了,改正后正确。

2.代码互评(5分)

同学代码截图

自己代码截图

1.该同学在数鸡蛋一题中用了while循环,而我用的是for循环。
2.在数鸡蛋那一题中用while循环会比较简洁一点。
3.在购物一题中我们虽然都用的while循环,但是定义的字符不一样,该同学一看就知道字母表达的是什么,我的比较简单。
4.在购物一题中同学的代码比我的要复杂一些,我们在一些细节的处理上存在区别。

3.学习总结(15分)

3.1 学习进度条(5分)

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

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

3.3.1 学习内容总结

3.3.2 学习体会

1.学的东西越来越多,写的题也变难了,学的东西越来越多,写的题也变难了。
2.之前容易出错的细节都不会错的,但又出现了别的细节错误。
3.本周的PTA作业比之前的都要难,写的就很慢,问题也多,痛并快乐着,为自己加油!

原文地址:https://www.cnblogs.com/kwq0928/p/14097466.html