C语言I博客作业07
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/ |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11589 |
| 这个作业的目标 | 学会并熟悉循环结构,熟练运用while与do while与语句来解决问题 |
| 学号 | 20208999 |
1.PTA实验作业(20分/题)

1.1 7-3 循环-古角猜想 (20分)
日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。
1.1.1数据处理
数据表达:本题定义了n一个整型变量。
数据处理:while (n != 1)
{
if (n % 2 == 0)
{
printf("%d/2=%d\n", n, n / 2);
n = n / 2;
}
else {
printf("%d*3+1=%d\n", n, n * 3 + 1);
n = n * 3 + 1;
}
}
伪代码:写入while循环,循环当n不等于1时,判断n除以2的余数是否为零来间接判断是否为偶数,如果是,输出算式,并将n除以2,如果不是,输出算式,使n乘以3加1.
1.1.2实验代码截图

1.1.3 造测试数据

1.1.4 PTA提交列表及说明

提交列表说明:
运行超时:while内的循环条件输入错误,导致循环不停
处理方法:将while内的n==1改为n!=1;
1.2 7-6 购物(二) (25分)
用户购买了若干个商品(商品数不超过10),现在,他告诉你每件商品的价格,你计算出这些商品的平均价格。
1.2.1 数据处理
数据表达:定义了 n, sum, i, result;双精度浮点型变量,对result,sum,i赋值为零
数据处理:while (n != -1)
{
sum = sum + n;
i++;
scanf("%lf", &n);
}
if(i==0){
i=1;
result=0;
}
result = sum / i;
printf("%.2f", result);
return 0;
}
伪代码:写入while循环,循环当n不等于-1时,使sum加n,i加1,格式化输入n值,如果i等于0,i就赋值1,result赋值0来判断商品数为极端值的情况,再使sum除以i储存在result内,最后输出result值
1.2.2 实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 890.78 2769.8 12300 3532.2 -1 | 4873.19 | 实验输入样例 |
| 50 90 -1 | 70 | 商品数较少 |
| 50 | 50 | 商品数为极端值 |
1.2.4 PTA提交列表及说明

提交列表说明:
部分正确1:使用了do while语句并在内格式化输入商品数但循环错误
解决方案:将do while语句改成while语句并在while语句前格式化输入商品数,在while语句内再格式化输入商品数构成循环
部分正确2:没有考虑的商品数为极端值的情况
解决方案:增加一个if语句判断商品数为极端值的情况
2.代码互评(5分)
同学代码1:

本人代码:

- 不同点:1.他定义了三个变量来计算而我定义了四个变量
2.他在输出时将平均价格计算好输出,而我用了一个变量来储存平均价格并输出
同学代码2:

本人代码:

- 不同点:1.他在while中镶嵌了另一个while语句来解决问题,而我只用了一个while来解决问题。
2.他定义了两个变量,将其中一个作为中间量,我只定义了一个变量来解决问题
3.学习总结(15分)
3.1 学习进度条(5分)
| 周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较疑惑的问题 |
|---|---|---|---|---|
| 第一周/11.2-11.8 | 15h | 350 | 学习了for循环结构 | 无 |
| 第二周/11.9-11.15 | 21h | 480 | 学习了自定义函数的调用 | 无 |
| 第二周/11.16-11.22 | 35h | 540 | 学习了if else分支结构,字符型定义 | 无 |
| 第四周/11.23-11.29 | 46h | 660 | 学习了switch语句 | 无 |
| 第五周/11.30-12.6 | 50h | 780 | 学习了while语句与do while语句 | 在while内镶嵌其他语句 |
3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
学习了while与do while语句,思维树的叶子多了一片

3.3.2 学习体会
- 不能只是完成作业就完事了,每次做完作业后也要复习知识点,并预习下次要学的东西
- 每天都要打一段时间的代码,可以经常看看视频教学
- 要多去参考资料,打代码不能只是照猫画虎,那样毫无作用

浙公网安备 33010602011771号