作业要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2522
我观看了mooc上第七周关于数组的课程。
首先,了解并学到了关于数组定义的内容,掌握了关于数组定义的多种方法。
然后了解到了存放元素的另一种方法,就是运用sizeof的含义
刚看完视频我对sizeof还是没有很清晰的认识,所以我就上网查了一下关于sizeof的用法介绍。
这样我就对sizeof有了很深刻的了解并且可以很好的掌握了。
第一题:
#include<stdio.h> int main(){ int n,i; double average,sum; scanf("%d",&n); int a[n]; if(n<1||n>10){ printf("Invalid."); } else{ sum = 0; for(i=0;i<n;i++){ scanf("%d",&a[i]); sum = sum + a[i]; } average = sum / n; printf("%.2f",average); printf(" "); for(i=0;i<n;i++){ if(a[i]>average){ printf("%d ",a[i]); } } } printf(" "); return 0; }
第一步:定义变量第一行中要求输入的变量n,平均值average,总和sum和数组a[ ]。
第二步:通过if-else语句,判断是否在条件内进行循环。
第三步:条件内,通过for循环进行计算,得出结果。
第四步:输出结果。
流程图如下:
刚开始显示的答案错误,并没有按照要求进行输出。
将sum= 0 写入循环外,输出结果就正确了。
调试结果如下:
第二题:
#include <stdio.h> int main(){ int n; scanf("%d",&n); int a[n]; int i; for(i=0;i<n;i++){ scanf("%d",&a[i]); } int temp1 = a[0]; int temp2 = 0; for(i=0;i<n;i++){ if(a[i]>temp1){ temp1 = a[i]; temp2 = i; } } printf("%d %d",temp1,temp2); return 0; }
第一步:设出第一行要输入的正整数n与数组a[ ],t1,t2。
第二步:利用for循环求出最大值以及下角标。
第三步:输出结果。
根据老师上课讲的课本上的事例,我分析到了这道题需要注意的关键点,即求最大值的地方,所以根据老师讲的我做出了这道题,但是很模糊,所以我把它整理上来了。
结果正确。
通过了这周的学习,我掌握也学会了数组,也会运用数组求最大值最小值及其下角标了,其中夹杂的for循环也能清楚的处理掉,但是仍然需要不断地练习巩固知识。
点评:https://www.cnblogs.com/1017547133jyj/p/10165434.html