第四次博客作业
作业要求【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523】
我观看了7个大视频。通过观看视频我学习到了怎样定义数组,和怎样去使用数组,如何遍历一个数组,如何遍历一个二维数组,怎样在数组中寻找一个你想要的值看是否存在,怎样进行逆序或者从大到小从小到大排序。有问题的是二维数组不太能理解,虽然能定义出来二维数组,但是用起来不是很熟练,全部将数组定义为0这个也很难证明白,老师说过需要for遍历一下,但是一个大括号0就可以实现数组全部定义为0,这个方法到底实用与否我很难说,不知道是正确的还是错误的。
第13次作业
题目 7-2 输出所有大于平均值的数
#include<stdio.h> int main() { int a[10],i,count; double sum=0,average; scanf("%d",&count); if(count>=1&&count<=10){ for(i=0;i<count;i++){ scanf("%d",&a[i]); sum=sum+a[i]; } average=sum/count; printf("%.2f\n",average); if(count==1)printf("\n"); for(i=0;i<count;i++){ if(a[i]>average)printf("%d ",a[i]); } } else printf("Invalid."); return 0; }
解题思路
第一步:首先定义一个数组和一些变量
第二步:将输入得数按顺序依次存入到数组中
第三步:将数组中存进去的数进行相加并取平均
第四步:将数组中的数字从头到尾依次和平均数进行比较,并将比平均数大的数字输出
第五步:最后输出平均数和比平均数大的数
流程图
本题调试过程碰到问题及解决办法
起初程序运行结果是正确的
调试截图
但是当count==1的时候,他是没办法输出回车的,程序过不去,于是我修改了程序,加上count==1的条件
运行结果截图
个人总结
这周我学习到了二维数组,二维数组需要用到两个for循环去遍历,适用于存很多字符串类型的题目,但是定义使用并不那么熟练,我多次找题目去联系,希望可以解决二维数组的使用困难。数组定义也有一些疑问,全部定义为0是一定要用for循环还是只需要大括号0就可以。mooc网上是说大括号0就可以,但是老师说过需要遍历。
第十四次作业 题目 7-2 求最大值及其下标
#include<stdio.h> int main() { int i,a[10],number,t=0,k=0; scanf("%d",&number); for(i=0;i<number;i++){ scanf("%d",&a[i]); } t=a[0]; for(i=0;i<number;i++){ if(a[i]>t){ t=a[i]; k=i; } } printf("%d %d",t,k); return 0; }
解题思路
第一步:先定义一个数组a和t,k,i,number
第二步:输入你要输入的数值给number,表示你要输入几个数
第三步:用for循环来将你所输入的数按顺序交给数组a
第四步:令最大值即t为数组第一个数,并进行循环判断,如果后一个数大于这个最大值,那么将这个数赋值给最大值,将这个数的在数组中的下标交给k保存
第五步:输出最大值及其下标
流程图
题调试过程碰到问题及解决办法
运行也是正确的
调试也是正确的
但是pta无法过去,后来我发现,如果最大值不设数组第一个的话,很有可能循环结束出来的最大值不是数组中的数。
程序修改后截图
程序调试截图
程序运行截图
个人总结
这周我学习到了指针,并且明白了指针是指向一个地址,数组是指针的特殊形式,而且数组中是如何存入数字的,他存入的是指针,那个指针指向了一个地址中的数,所以将数字存了进去,但是理解还是不熟练,我需要多看mooc去理解。
互评和学习进度
点评博客【https://www.cnblogs.com/1a2B3c4D/p/10160490.html】
【https://www.cnblogs.com/error203/p/10160025.html】
【https://www.cnblogs.com/abcefg123/p/10161739.html】