• 第四次作业


    作业要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2522

    1. 我观看了数组,函数的定义与使用,函数的参数与变量,数组运算。

    2.我知道了1).数组规定了多少个元素就不能超过这个数,否则就是越界。

         2).储存数组时需要用for循环一个一个输入。

         3).函数调用首先从主函数开始进行,从中跳转到所定义的函数。

    3.问题:在运用数组时会出现运用不好的问题,有时还会有越界的问题。

    第十六周作业   题目: 7-1 输出数组元素

    1.实验代码

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

    2.解题思路

    1).定义四个整型变量给出的正整数数量n,和输出的后项减前项的值 j ,以及i和count;输入n后,再定义整型数组a[n];

    2).进入第一个循环从i=0开始进行存入数组中的n个数;而后进行第二个循环;

    3).这时要注意从i=1开始计算j的值,因为要求是后一项减前一项;count随着循环进行n次加;

    4).当count除以三求余等于0时输出空格加j加回车;当count除以三求余等于1时输出j;当count除以三求余等于2时输出空格加j;结束运行。

    流程图

    3.调试过程遇到的问题及其解决方法:

    第一个问题:

    进行调试:

    输入所给案例的数字;直接出现结果:

     解决办法:发现储存a[i]后如果从i=0开始就会有a[0]-a[-1]会有a[0]的值5出现,所以我将i=0改成了i=1,结果没有直接跳出循环出结果而是一步一步进行循环

     

     

    结果正确。

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

    1.实验代码:

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

    2.解题思路

    1).先定义5个整数型变量i,输入数组元素的个数n,h,z,count=0,用户输入变量n,再定义数组a[n];

    2).进入循环i=0;当i<n时不断输入数组元素a[i],i++,直至i>n.

    3).如果n>1且n<=10,则h=a[0],进入循环i=0;当i<n时不断进行循环语句中的条件语句:如果a[i]>h时h=a[i],z=i;否则h=h,count++;直至i>n;

    4).跳出循环后如果count等于i输出“h 0”;否则输出“h z”,结束。

    流程图

     

    3.调试过程遇到的问题及其解决方法:

     

    按照所给提示当n=10,数组中所有元素都相等时进行调试:

    解决办法:发现并不走count=i这一步而是进行下一步,所以我发现如果a[i]=a[i-1]时在我的程序里没有进行count++;所以count不会等于i;

    所以我将a[i]<h改为a[i]=h,结果正确;

    个人总结:

    本周学习内容:学习了数组的定义,数组的储存,选择排序法和冒泡排序法以及我们在储存数组时需要用for循环语句进行一个一个的储存;关于数组越界问题,还有将多个for循环用一个for循环以此减少循环使用。

    收获:主要收获是进行数字排列时可以减少for循环的使用,剪短代码的行数以及计算机进行的步骤。

    表格以及折线图:

    点评:

    https://www.cnblogs.com/cyw1/p/10133891.html

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

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

  • 相关阅读:
    onmousewheel
    Zepto 使用中的一些注意点(转)
    oninput onpropertychange 监听输入框值变化
    try catch
    center的用法
    [转]你的编程语言可以这样做吗?(map/reduce的js示范) (转)
    vue中 $event 的用法--获取当前父元素,子元素,兄弟元素
    chrome的vue插件——vue.js devtools的安装
    说明与比较:new Vue() 和 export default {}
    Vue反转字符串及join(),reverse()与 split()函数用法解析
  • 原文地址:https://www.cnblogs.com/a-b-c-d-e1/p/10116269.html
Copyright © 2020-2023  润新知