第四次作业
第四次作业
我观看了浙江大学程序设计入门-C语言课程中有关数组的第六周和第七周部分,总共观看了17个视频。
观看列表截图
通过观看视频我学习到的知识点:
*利用for循环来遍历数组。
*数组的集成初始化:直接用大括号给出数组所有元素的初始值,不需要给出数组大小。
*数组作为函数参数时,往往必须再用另一个参数来传入数组大小。
对于所学知识点还有的疑问:
*专一多能不是好的代码,例如在一段代码中,i即是循环遍历的变量,又用来作为其他的标志,这样是不好的。一开始不是很理解这句话的意思,反复看了几遍视频之后就能理解了。
没有学会的知识点:
*二维数组的tic-tac-toe游戏中读入矩阵,检查行,检查列,检查对角线。
作业要求https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2522
PTA作业
第16周 第13次作业 7-2 输出所有大于平均值的数
题目:
本题要求编写程序,将输入的n个整数存入数组a中,然后计算这些数的平均值,再输出所有大于平均值的数。
输入格式:输入在第1行中给出一个正整数n(1≤n≤10),第2行输入n个整数,其间以空格分隔。题目保证数据不超过长整型整数的范围。
输出格式:输出在第1行给出平均值,保留2位小数。在第2行输出所有大于平均值的数,每个数的后面有一个空格;如果没有满足条件的数,则输出空行。如果输入的n不在有效范围内,则在一行中输出"Invalid."。
1.实验代码
#include <stdio.h> int main () { int n,i,a[10],sum; double average; sum=0; scanf("%d",&n); if(n>=1&&n<=10) { for(i=0;i<n;i++) { scanf("%d",&a[i]); sum=sum+a[i]; } average=sum/n; printf("%.2f\n",average); for(i=0;i<n;i++) { if(a[i]>average) { printf("%d ",a[i]); } } printf("\n"); } else { printf("Invalid."); } return 0; }
2 解题思路
(1)算法:**利用for循环进行数组的赋值并求和,求出平均值后,再利用for循环将数组中每个数与平均值一一比较,输出符合要求的数。
*输入n。
*当输入的n值满足条件时,利用for循环遍历数组,进行数组的赋值并求和。
*求出平均值。
*再次利用for循环遍历数组,将数组中每个数与平均值比较。
*输出符合要求的数。
*当输入的n值不满足条件时,输出“Inwalid”。
(2)流程图:
3.本题调试过程碰到问题及解决办法
(1)错误:在利用for循环给数组赋值时,语句“i<n”,错写成了“i<=n”。
(2)有错误提示的截图
当正常输入n等于3,接着在输入三个数,按回车键后,没有给出计算结果,而是显示要继续输入。
(3)编译器设置断点、单步调试的界面截图
(4)解决办法:通过反复尝试,我找出了错误的地方并去掉了多余的等号,改正后正常输入后可以得出结果。
第17周 第14次作业 7-2 求最大值及其下标
题目:本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。
输入格式:输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。
输出格式:在一行中输出最大值及最大值的最小下标,中间用一个空格分开。
1.实验代码
#include <stdio.h> int main () { int i,a[10],n,max; scanf("%d",&n); for (i=0;i<n;i++) { scanf("%d",&a[i]); } max=0; for (i=0;i<n;i++) { if(a[max]<a[i]) { max=i; } } printf("%d %d",a[max],max); return 0; }
2解题思路
(1)算法:**利用两次for循环遍历数组,第二个for循环中嵌套if语句用来给查找最大值。
*第一次利用for循环,遍历数组,给数组赋值。
*先令max等于0,在进行最大值的查找。
*第二次利用for循环,遍历数组,再嵌套if语句,将数组中每个数进行比较,找出最大值及其下标。
(2)流程图
3.本题调试过程碰到问题及解决办法
(1)错误:数组长度是一个整型常量表达式,而我把数组长度设成一个变量,这是不对的。
(2)有错误提示的截图
(3)编译器设置断点、单步调试的界面截图
(4)解决办法: 将数组长度该成一个常量,例如10,程序就可以正常运行了。
个人总结:
1.本周我学习了的内容:数组的定义,利用for循环给数组赋值,还可以将数组中每个数都拿出来进行相关计算。
我的收获:*数组是一些具有相同类型的数据的集合,数组中的数据按照一定的顺序排列存放。
*数组长度是一个整型常量表达式,设定数组的大小,在定义时必须指定。
*数组下标从0开始,下标不能越界。
2.难点:*利用for循环遍历数组来进行赋值,比较等计算。
*逻辑关系复杂的程序总是思路混乱,没有头绪。
措施:*认真看书,先解决在知识点上的欠缺。
*上网查找资料,培养自主学习的能力。
*多敲代码,反复练习,熟能生巧。
*虚心向同学学习,借鉴他们的优点。
累积代码行数和时间:
时间 | 12月13日 | 12月14日 | 12月15日 | 12月16日 | 12月17日 | 12月18日 | 12月19日 | 12月20日 | 12月21日 | 12月22日 | 12月23日 | 12月24日 | 12月25日 |
代码行数 | 30 | 55 | 73 | 102 | 135 | 157 | 160 | 176 | 189 | 194 | 210 | 225 | 236 |
累积博客字数和时间:
时间 | 12月13日 | 12月14日 | 12月15日 | 12月16日 | 12月17日 | 12月18日 | 12月19日 | 12月20日 | 12月21日 | 12月22日 | 12月23日 | 12月24日 | 12月25日 |
博客字数 | 0 | 0 | 0 | 0 | 0 | 200 | 300 | 300 | 300 | 450 | 750 | 850 | 900 |
折线图:
点评:https://www.cnblogs.com/mayijing/p/10158728.html
https://www.cnblogs.com/zst1/p/10133338.html
https://www.cnblogs.com/nansu/p/10134717.html