第四次作业

作业要求: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

2.https://www.cnblogs.com/159357www/p/10165685.html

3.https://www.cnblogs.com/wudiabc/p/10165328.html

 

posted on 2018-12-25 19:49  闫永鑫  阅读(192)  评论(7编辑  收藏  举报

导航