第四次作业
作业要求:https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523
预习作业:
一.我观看了翁恺老师关于c语言数组部分的11个视频及问题讲解。
二.学到的东西:
我学到了什么是数组,怎样定义数组,怎样使用数组。并且在向老师提问的页面上有一位同学问字符是否可以做下标。这个问题一开始我也感到非常困惑,之后我用devc++试了一下发现字符会转化为它所对应的ASCII值。所以我也有了意外的收获:字符也可以做下标。
三.对于所学知识点还有哪些疑问?有哪些知识点没有学会?
我对于所学的知识点已经没有疑问了,通过上课与老师进行学习和慕课学习,我已经明白了这节只是。但是我觉得在我今后自己的继续学习中我一定会产生一些问题,我也会通过积极向比我程度好的同学询问尽量自己解决。实在没有办法再来问老师。
7-2 求最大值及其下标
代码:
#include <stdio.h> int main(){ int m=0,i=0,max=0,maxb=0,j=0; scanf("%d",&m); int a[m]; for(i=0;i<m;i++) { scanf("%d",&a[i]); } maxb=0; for(j=0;j<m;j++) { if(a[j]>max) { max=a[j]; maxb=j; } } printf("%d %d",max,maxb); return 0;}
1.解题思路:
1.首先定义整形的变量m=0,i=0,max=0,maxb=0,j=0,并输入该数组内存放的数的个数。
2.通过输入的个数在定义一个数组 a[m]。
3.进行一个执行m次的循环体,将每一个数都输入到定义的数组a中。
4.在确定一个数a{0]从0开始在进行m-1次的循环体,把第一个数字都和a[0]比较确定大小关系。
5.大于,那么把这个数再继续进行循环,不大于,则什么都不做继续循环。
6.最后在将数值定义的同时把这个数在数组里的第几个定义。
7.最后max和maxb就是题中所给的答案。
2.流程图:
3.本题调试过程碰到问题及解决办法:
这次作业经过学习后已经没有问题了。
7-2 输出所有大于平均值的数
1.代码:
#include <stdio.h> int main() { int b=0,c=0,e=0,i=0; double d=0; scanf("%d",&b); if(b>=1&&b<=10) { int a[b]; for(i=0;i<b;i++){scanf("%d",&a[i]);} for(i=0;i<b;i++){c=c+a[i];} d=c*1.0/b*1.0; printf("%.2f\n",d); if(b==1){printf("\n");} else {for(i=0;i<b;i++) { if(a[i]>=d){printf("%d ",a[i]);} } } } else{printf("Invalid.");} return 0; }
2.解题思路
1.定义四个整形变量b,c,e,i。定义一个浮点型变量d。
2.输入一个数确定数组一共的数字个数。在定义一个数组。
3.进行一个for循环将每一个数字都定义给数组,再进行for循环将数组中的每一个数字都进行相加。
4.加之后再除以数组内数的个数进行计算整个数组的平均数。
5.进行一个for循环,把数组里的每一个数都进行与平均数的比较。
6.这个数字大于平均数,进行输出,不大于,继续进行for循环至运行结束。
7.这个数不在1到10的范围内就输出Invalid。
2.流程图
3.本题调试过程碰到问题及解决办法
个人总结:
在老师的带领和我自己不断学习中,我越来越对计算机产生浓厚的兴趣,我收获了许多。这要谢谢老师。在学习中我也曾经遇到了许多困难,但是我学会了独立解决问题,并且可以和同学进行问题探讨。我觉得我真的学到了很多东西。我以后会继续认真学习c语言的。谢谢老师。
祝老师和助教新年快乐哟。
学习进度:
点评博客:
https://www.cnblogs.com/zhangtianshu/p/10175981.html
https://www.cnblogs.com/1banwangkang/p/10171222.html
https://www.cnblogs.com/wanghaoze/p/10170390.html