~第四次作业~

作业要求:【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523

预习作业截图及感受:

 

 

在老师上课之前,让我们观看了一些数组的MOOC视频,通过观看老师给的视频达到了让我们对新课程的预先效果,并且让我们呢对新课程有了浓厚的兴趣。尽管观看视频后我会有或多或少的问题许多问题,但是随着老师上课的慢慢讲解,我产生的疑问也被一一解决。我总共观看了第六周第七周的五个视频,通过观看这些视频我基本上学到了数组的概念和如何操作数组等基础的知识点,而且我也知道了怎么解决数组的编程题。但让我产生的最大的疑问是数组到底是如何存储数据的;以及再给数组定义中,中括号的前面那个字母到底是用来干什么的我很好奇,尤其是对于二维数组我没有掌握牢靠。

第十五次作业:

7-3 查找整数 :

本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。

代码

#include <stdio.h>
int main()
{
  int a=0,b=0,c=0,i=0;
  scanf("%d %d\n",&a,&b);
  int e[a];

  for(i=0;i<a;i++){scanf("%d",&e[i]);}
  for(i=0;i<a;i++)
  {
    if(b==e[i]){printf("%d",i);c++;}
    
  }
  if(c==0){printf("Not Found");}
  return 0;
}

解题过程:

1.先定义四个整形变量a,b,c,i,在输入数组里的数的个数,和要查找的整数b。

2.在定义一个数组e[a]。

3.先进行一个循环体将每一个整数都输入到处数组里中。

4.在进行一个循环体,将数组里的每一个数字都和b进行对比。

5.如果和b相等的话就输出这个数在数组里的位数i,在把c进行加一。

6.判断如果循环完之后c是0,那么输出Not Found。

流程图:

 

运行结果:

 

调试过程;

个人总结:

在这个运行的过程中主要确定的是在for循环的过程中判断是否与所给的数据相等,如果想等则进行输出的结果,并进行次数的加一,在for循环结束的时候在进行判断是否有与所给数据的数字相等,如果不想等则进行notfound指令输出。

第十四次作业:

7-2 求最大值及其下标 :

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

代码

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

解题思路:

1.首先定义四个整形的变量a,b,c,i,并输入该数组内存放的数的个数。

2.通过输入的个数在定义一个数组e [a]。

3.首先进行一个执行a次的循环体,将每一个数都输入到定义的数组e中。

4.在确定一个数e[0]从0开始在进行a-1次的循环体,把弟一个数字都和e[0]比较确定大小关系。

5.如果大于,那么把这个数输入到b中在继续进行循环,如果不大于,则什么都不做继续循环。

6.最后在将数值定义给b的同时把这个数在数组里的第几个定义给c。

7.最后输出b和c就是题中所给的答案。

 流程图:

 

 

运行结果;

 

 调试过程:

个人总结:

一定要在数组定义前把数组里的个数定义好,防止数组会多生出别的数,这样就会产生乱码的情况,导致后期在循环计算中会出现多余的现象。而且在写循环的时候一定奥不嫌麻烦,要分部写。否则就会让程序出现混乱的情况。

互评学习与进度:

 

 

 点评博客:

1.【https://www.cnblogs.com/zcybky/p/10152047.html

2.【https://www.cnblogs.com/1a2B3c4D/p/10160490.html

3.【https://www.cnblogs.com/abcefg123/p/10161739.html

posted on 2018-12-23 23:57  王相博01  阅读(296)  评论(11编辑  收藏  举报