第四次作业

博客链接:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2512(点击以进入)

(一)中国大学mooc

第六周 初试数组

当我看着节视频时 我在想几个问题我们输入的到多少数字才算时赋值结束,用什么方法来给数组赋值,

这个问题在视频中我得到了解决,我们首先可以输入“-1”来作为输入赋值结束的标准,这个标准用while来判断,在while里面加上for循环,scanf,给数组依此赋值

 

第六周 定义数组

从以上视频我得出结论 原来数组一旦固定大小 就不可以改变,数组下标一定是零开始数的为了计算机计算可以很方便,

当然数组下标越界是不可以的,下标越界程序通常会崩溃 也有特殊运气好不崩溃的情况,不崩溃就是把超出下标的数据写入到不该写的地方

定义数组时 我们可以定义一个a[0]形式但是这毫无意义

(二)pta作业

第十三次作业

查找整数

1、实验代码

 

#include<stdio.h>
int main()
{
  int n,x,i;
  int a[20];
  scanf("%d %d",&n,&x);
  for(i=0;i<n;i++){
    scanf("%d",&a[i]);
  }
  for(i=0;i<n;i++){
    if(a[i]==x)
    break;
  }
  if(i<n)
  printf("%d",i);
  else
    printf("Not Found");
  return 0;
  
  
}

 

2、解题思路

定义一定量的数组,用for计数循环输入数组,最关键的一点 我用遍历数组的方式加入if 依此来查找我要找的X,没有我就输出 Not Fount

流程图

3调试过程

 

最开始运行时候,总有给出数字,怕判断出错的情况在仔细检查程序的书写情况时候也没有错误,后再在检查我的语言逻辑是得出了结果,以上的判断语句中每次的i只可以小于n即可

上图为改正后的图

第十四次作业

求最大值及其下标

1实验代码

#include<stdio.h>
int main()
{
  int i,n,m,ind;
  int a[10];
  scanf("%d",&n);
  for(i=0;i<n;i++){
    scanf("%d",&a[i]);
  }
  m=a[0];
  for(i=0;i<n;i++){
    if(m<a[i]){
    m=a[i];
    ind=i;
    }
    if(m==a[i]){
     m=a[i];
    if(ind>i)
     ind=i;
   }
    }
 
 
  printf("%d %d",m,ind);
  return 0;
 
}

2解题思路

在遍历数组之后我先把数组第一个值给m,之后for循环里面用判断语句依此再吧大的值付给m,并吧下标付给ind,每次循环判断都会把当前最大值的最小下标赋给ind,并把最大的值赋给m

流程图

3调试过程

在运行调试过程会有出现如果输入的第一个数字是最大的想要的那个数字,最后结果就会出现错误,会从N个数字里头从第二个数字起第N-1个数字里头选出想要的结果

经过查询 语法、书写、还有逻辑以后发现逻辑出现了错误 ,如果比较的时候把下标为1的赋给m,则经过for循环i++以后下标为0的第一个数字无法与其他的数字比较导致错误的结果

调试后用几组数字(包括第一个数字是最大的情况)实验以后 结果正确

(三)总结

 数组里面基本知识要弄清 比如数组下标从0开始数,遍历数组的时候下标不能越界,

在写程序使注意自己的逻辑。i在for循环是不是从零开始 条件里面是不是应该有等于号,遍历数组赋值是不是从第一项开始,

 (四)学习进度与互评

折线图

表格

互评

https://www.cnblogs.com/mayijing/p/10158728.html

https://www.cnblogs.com/zst1/p/10133338.html

https://www.cnblogs.com/kaitbkleyue/p/10164062.html

posted @ 2018-12-23 22:57  耳濡目染  阅读(223)  评论(6编辑  收藏  举报