作业要求【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523】
通过观看视频我学习到了如何定义数组,如何去使用数组,如何编译一个数组,如何编译一个二维数组,如何在数组中寻找一个数的值是否存在,如何进行排序。通过观看老师给的视频我们对新课程有了一些了解,并且让我们对新课程有不少兴趣。有问题的是二维数组不怎么理解,虽然可以定义出来二维数组,但用起来很不熟练。
7-2 求最大值及其下标 :
#include<stdio.h> int main() { int a=0,b=0,c=0,i=0; scanf("%d ",&a); int e[a]; for(i=0;i<a;i++) { scanf("%d",&e[i]); } b=e[0]; for(i=1;i<a;i++) { if(e[i]>b){b=e[i];c=i;} } printf("%d %d",b,c); return 0; }
解题思路:
1.首先定义四个整形变量a,b,c,i,输入数组内存放的数的个数。
2.输入的个数在定义一个数组e [a]。
3.进行一个执行a次循环体,将每个数都输入到定义的数组e中。
4.在确定一个数e[0]从0开始,在进行a-1次的循环体,把第一个数字和e[0]比较确定大小关系。
5.如果大于,把这个数输入到b中再继续进行循环,如果不大于,继续循环。
6.在将数值定义给b的同时把这个数在数组里的第几个位置定义给c。
7.最后输出b和c。
流程图:
个人总结:
要在数组定义前,把数组的个数定义出来,以防数组多出其他数,出现产生乱码的状况,使后期在循环计算中出现多余数的现象。在写循环的时候一定不能嫌麻烦,要认真写。不认真可能导致程序出现混乱的状况。
题目 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 ",average); if(count==1)printf(" "); for(i=0;i<count;i++){ if(a[i]>average)printf("%d ",a[i]); } } else printf("Invalid"); return 0; }
解题思路:
1、定义三个整型变量i,a[10],count;定义两个浮点型变量sum,average.
2、先由if-else语句判断输入的数是否符合,符合进入for循环,对a[i]连续赋值,反之输出"Invauld"
3、通过for循环计算出sum和average的值。
4、将符合的值输出,若没有则输出空格。
流程图
个人总结
这周学习到了二维数组,二维数组需要用到两个for循环去编译,但是定义使用并不熟练,数组定义也有一些疑问,全部定义为0时要用for循环还是只用大括号0。
https://www.cnblogs.com/1banwangkang/p/10171222.html