zoukankan      html  css  js  c++  java
  • 我的第4篇博客

    我的第4篇博客

    作业要求:Click Here

    一、预习作业

    在预习作业中,我在中国大学MOOC上观看了浙江大学翁恺老师关于数组的几个视频。

    在预习作业中,我学到了在学校课堂上没有学到的二维数组矩阵的定义与遍历;在数组的计算一章中,还学到了关于数组排列的一些知识。

    通过在网上的学习,能够进一步对自己在课上学到的东西进行补充,还学到了一些在课堂上没有学到的东西。在今后的学习中,我会好好利用网上的一些视频资源,在课余时间观看其余的视频。达到学以致用的目的。

    二、PTA作业

     4.1 题目7-4 数字加密

    【实验代码】

    int main(){
      system("title ENCRYPT");
      
      int a[4];
      int i;
      int b[i];
      
      int number;
      int time=10;
      
      scanf("%d",&number);
      
      for(i=0;i<=3;i++){
        a[3-i]=number%time;
        number = number / time;
      }
      
      
      
      for(i=0;i<4;i++){
        a[i]=a[i]+9;
        a[i]=a[i]%10;
        b[i]=a[i];
      }
      a[0]=b[2];
      a[2]=b[0];
      a[1]=b[3];
      a[3]=b[1];
      
      printf("The encrypted number is %d%d%d%d",a[0],a[1],a[2],a[3]);
      
      return 0;
      
    }
    

    【解题思路】

    1.定义两个一维数组,用来分别存放排序前与位数互换前后的数列;

    2.定义整型变量,用来存放输入值;

    3.通过运算将输入值的每一位数储存在数组a中;

    4.进行第一步加密:原数加上9并且除以10取余数;

    5.进行第二步加密:将1、3两位数交换,将2、4两位数交换并存在数组b中;

    6.按照题目所给的格式输出结果。

    【运行结果】

    【错误解决】

    错误代码:

      for(i=0;i<=3;i++){
        a[4-i]=number%time;
        number = number / time;
      }
      
      
      
      for(i=1;i<4;i++){
        a[i]=a[i]+9;
        a[i]=a[i]%10;
        b[i]=a[i];
      }
      a[1]=b[3];
      a[3]=b[1];
      a[2]=b[4];
      a[4]=b[2];
      
      printf("The encrypted number is %d%d%d%d",a[1],a[2],a[3],a[4]);
      
      return 0;
    

    由于在C语言中刚刚接触数组,对数组不够熟悉,导致了调用数组中元素出现问题:在数组中,第一个元素用a[0]表示而不是a[1]表示,在遍历数组的时候,统计次数的变量i也应该从0开始,循环4次。

    4.2 题目7-5:将数组中的数逆序存放

    【实验代码】

    int main(){
      system("title PAIXU");
      int n;
      scanf("%d",&n);
      int a[n];
      int b[n];
      int i;
      
      for(i=0;i<n;i++){
        scanf("%d",&a[i]);
      }
      
      for(i=1;i<=n;i++){
        b[n-i]=a[i-1];
      }
      
      for(i=0;i<n-1;i++){
        printf("%d ",b[i]);
      }
      printf("%d",b[n-1]);
     
      return 0;
    }
    

    【解题思路】

    1.定义两个数组分别存放排序前后的元素;

    2.在a数组中输入原数列;

    3.遍历数组中的每一项,将a数组的第一项存入b数组的最后一项;

    4.由于行末不允许出现多余空格,分别输出前n-1项加上一个空格,最后输出最后一项。

    【运行结果】

    三、我的学习收获

     这段时间,在C语言课程中,我学会了如何自定义函数并且对自定义函数进行调用;还学会了一维数组和二维数组的基本概念以及数组的使用方法。

    作业互评:

    1.https://www.cnblogs.com/asdfghjklasdfghjkl/p/10127728.html

    2.https://www.cnblogs.com/wengjx123/p/10126047.html

    3.https://www.cnblogs.com/freedomjdp/p/10115746.html

  • 相关阅读:
    autorun.inf删除方法
    Re_Write序列号
    最常用的正则表达式
    SQL聚合使用GROUP BY
    Ext.Net的Window控件的简单使用
    SQL统计查询一个表中的记录,然后减法运算
    C#金额转换为汉字大写
    Ext.Net的Button按钮的使用
    C# 参考之方法参数关键字:params、ref及out 引用
    C#连接ACCESS 2007数据库
  • 原文地址:https://www.cnblogs.com/zjy5201314/p/10175062.html
Copyright © 2011-2022 走看看