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 学习体会

  • 不能只是完成作业就完事了,每次做完作业后也要复习知识点,并预习下次要学的东西
  • 每天都要打一段时间的代码,可以经常看看视频教学
  • 要多去参考资料,打代码不能只是照猫画虎,那样毫无作用
posted @ 2020-12-05 14:29  rainofsummer  阅读(131)  评论(11)    收藏  举报