作业要求的相关链接:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2522

要求一:

1、你观看了几个视频?给出观看列表截图。

2、通过观看视频你学习到哪些知识点或者编程题目?

通过观看视频,我对数组有了更深刻的理解,知道了数组可以是变量,但数组变量本身不能被赋值这个知识点;

 3.对于所学知识点还有哪些疑问?有哪些知识点没有学会?

观看视频之后,我对数组越界这方面的知识点还存在一些疑问;

要求二:

 7-1 输出数组元素 

本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。

 

输入格式:

 

输入的第一行给出正整数n(1)。随后一行给出n个整数,其间以空格分隔。

 

输出格式:

 

顺次计算后项减前项之差,并按每行三个元素的格式输出结果。数字间空一格,行末不得有多余空格。

 

实验代码

#include <stdio.h>
int main(void)
{
  int i,n,count=0;
  scanf("%d",&n);
  int a[n];
  for(i=0;i<n;i++){
    scanf("%d ",&a[i]);
  }
  for(i=0;i<n-1;i++){
    a[i]=a[i+1]-a[i];
  }
  for(i=0;i<n-1;i++){
   if (i == 0){
            printf("%d", a[0]);
        }
        else if (count == 3){
            printf("\n");
            printf("%d", a[i]);
            count = 0;
        }
        else{
            printf(" %d", a[i]);
        }
        count++;
    }
  system("pause");
  return 0;
}

解题思路

1、根据题意定义出解题所需整型变量i,n,count;

2、由题意可知本题需要使用for循环语句,确定循环结束的条件;

3、题目中每行3个元素输出说明需要使用if条件语句进行判断;

流程图

  

调试过程中遇到的问题及其解决办法

       输出时发现自己在行末不能出现多余空格这一点上出现了问题,本来应该输出[3 4 5]这样的格式,而实际却输出的却是[3 4 5 ]这样的格式;

调试及修改:

调试过程如下:

 

调试之后发现如果n取最小为1的时候,需要使用if语句单独考虑才不会在行末出现多余空格,经过修改,结果正确;

 

7-2 求最大值及其下标 (20 分)

本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。

输入格式:

输入在第一行中给出一个正整数n(1<n10)。第二行输入n个整数,用空格分开。

输出格式:

在一行中输出最大值及最大值的最小下标,中间用一个空格分开。

实验代码

#include <stdio.h>
int main(void)
{
  int n,i,max,index;
  scanf("%d\n",&n);
  int a[n];
  for(i=0;i<n;i++){
    scanf("%d ",&a[i]);
  }
  max=a[0];
  index=0;
  for(i=1;i<n;i++){
    if(a[i]>max){
      max=a[i];
      index=i;
    }
  }
  printf("%d %d\n",max,index);
  system("pause");
  return 0; 
}

解题思路

1、定义解题所需的变量i,n,max,index;

2、由题意可知需找一组数中的最大值,则需要使用for循环和if语句;

3、根据题意确定for循环结束的条件;

流程图

 

调试过程中遇到的问题及其解决办法

     当我按照题目所给数据【6/ 2 8 10 1 9 10】输入时,正常情况下应输出【10 2】,而实际上我写的代码却输出了【10 5】,即输出了最大值和对应的最大下标与题目要求的对应最小下标不符,经过调试,我发现在用if语句判断时,判断条件中我写的是(a[i]>=max),而正确的应该是(a[i]>max),修改后,程序运行正确。

错误运行如下:

调试过程如下:

    修改之后,正确运行如下:

 个人总结:本周主要学习了数组,运用数组可以在编写代码中储存数据,使代码变得更加便捷,具有更强的可读性;另外在数组的基础上,我们还学习了两种排序方法——冒泡排序法和选择排序法,这两种排序方法都能使随意输入的数据快速地按照大到小或小到大的顺序输出;在数组这个知识点上,我认为比较难的还是选择排序法,容易弄混,不过当我做了一些pta上相关的题目之后,我对这个方法更加熟练了。

相关图表数据

 已点评的博客链接:

https://www.cnblogs.com/kaitbkleyue/p/10164062.html(张文武)

https://www.cnblogs.com/chumengGTRlhz/p/10116012.html(李浩正)

https://www.cnblogs.com/freedomjdp/p/10115746.html(鞠大鹏)