作业要求:https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523
预习作业截图及感受:
感受:预习观看了数组MOOC视频之后,我对数组有了一定的认识,了解到数据是储存数的容器,数组的每个单位就是数组类型的一个变量,使用数组时放在【】中的数字叫做下标或索引,下标是从0开始计数,同时还要注意让下标不要越界。
第14次作业7-2
求最大值及其下标
代码:
#include <stdio.h> int main(void) { int n; scanf("%d",&n); int a[n]; int i; int count=0; for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=1;i<n;i++) { if(a[count]<a[i]) { count++; } } printf("%d %d",a[count],count); return 0; }
解题思路:
1:定义一个数n,设n为输入数的个数
2:定义一个数组a[i],在数组a[i]中找出最大值和最大值的下标
3:定义一个i用来循环n次,利用循环输入n个数,把n个数代到数组中
4:定义一个count用来表示最大值的下标,循环n-1次,判断a[i-1]是不是大于a[i]如果是i-1+1,i+1,如果不是i+1,找出最大值及下标
流程图:
运行结果:
调试
没有发现问题
个人总结:
运用数组做题时应注意数组中的数的下标是从0开始,还要注意数组的范围不可以越界。
第十四次作业7-5
将数组中的数逆序存放
代码:
#include <stdio.h> int main(void) { int n; scanf("%d",&n); int a[n]; int i; for(i=0;i<n;i++) { scanf("%d",&a[i]); } int t; for(i=0;i<n/2;i++) { t=a[i]; a[i]=a[n-(i+1)]; a[n-(i+1)]=t; } for(i=0;i<n;i++) { if(i!=(n-1)) { printf("%d ",a[i]); } if(i==(n-1)) { printf("%d",a[n-1]); } } }
解题思路:
1:定义一个数n,设n为输入数的个数
2:将n个数写入数组a[n]中
3:定义一个常数t用来使a[i]和a[n-(i+1)]交换,注意循环n/2次
4:利用循环除了最后一位以外输出带空格的,最后一位不带空格
流程图:
运行结果:
调试过程:
总结:
本题要注意交换数值时应该再定义一个数赋值方便交换,输出是还应该注意最后一个数不要输出空格,
运用多次循环时要仔细以免发生混淆。
互评和学习进度:
点评博客:
1.https://www.cnblogs.com/chengxu230921/p/10170865.html