zoukankan      html  css  js  c++  java
  • C语言博客作业04--数组

    1.本章学习总结

    1.1 思维维导图

    1.2 本章学习体会及代码量学习体会

    1.2.1 学习体会

    这周主要学习了数组,一维数组,二维数组和字符数组等,在一些基本的操作方面,如定义,引用等这三种数组并没有太大的区别,只是不同数组稍微有点改变,就像字符数组中就加入了一个结束符‘’.除了有学到一些数组的基本应用,还学到了冒泡排序法和选择法以及二分查找法等应用型方法。
    随着对C语言的深入学习,数组这一章还是蛮难的,虽然上课有认真听课,大部分也能够听懂,但是课后做题也还是没有头绪,以后还是要多花时间在做题上。
    

    1.2.2代码累计

    2.PTA总分

    2.1三次题集分数截图



    2.2我的总分

    一维数组得分:164分
    二维数组得分:50分
    字符数组的分:40分
    总分:254分
    

    3.PTA作业

    3.1 题目一

    本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序
    

    3.1.1 算法分析

    .定义i,j.x.n
    .输入n,定义数组a[n]
    .for from i=0  to  i<n  then  do 
       输入a[i];
    .当a[i]<x且i<n时  do
        i++
    .for from j=n-1  to  j>=i   then  do
       a[j+1]=a[j];
    .把x赋给a[i]   a[i]=x;
    .循环输出新的序列a[i];
    .end
    

    3.1.2 代码截图

    3.1.3 提交列表及分析

    Q1:循环的结束点通常搞不懂在哪里
    Q2:插入新的数之后,其后面的每个数的位置都会向右移动一个位置,不懂怎么用代码表达出来

    3.2 题目二

    本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
    

    3.2.1 算法分析

    .定义两个字符数组 str1[N],str2[N];
      定义ch,temp;
     定义 len1=0;
     定义循环变量 i,j;
     定义 k=0,flag;
    .输入字符串   ch=getchar();
    .for  from  i=0  to   ch!='
    '     then do
        str1[i]=ch;
        len1++;    //计算字符串长度
        ch=getchar();
    .for  from  i=0  to  i<len1   then do
         flag=0;   //没有重复字符时置flag=0;
         for  from  j=0  to  j<i   then do
               判断:如果有相同字符  then do
                    flag=1
               否则   str2[k++]=str1[i];
    .使用冒泡排序法来排序
    .for from i= to k-1  then do
          for from j=0  to  k-i-1  then do
                判断str2的前一个数是否大于后一个数
                大于时交换位置  do     temp=str2[j];  str2[j]=str2[j+1];   str2[j+1]=temp;
    .循环输出str2[i]
    .换行
    .end
    

    3.2.2 代码截图


    3.2.3 提交列表及分析


    Q:我的绝望已经体现在我长长的提交列表上了,一直部分正确是因为有很多的小问题没有处理好
    Q2:ASCII码值的大小比较错误

    3.3 题目三

    本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。
    

    3.3.1 算法分析

    .定义n,i,j;
    .定义count=0,以及两个数组 a[10],b[10];
    .输入n
    .for  from i=0  to  i<n  then do
          输入n个数
    .for  from j=n-1  to j>=0  then do
          b[count]=a[j];
           count++;
    .循环输出数组b[ ]
    .end
    

    3.3.2 代码截图

    3.3.3 提交列表及分析


    Q:这个题目比较简单,一开始输出的格式没控制好,还没发现;

    4.代码互评

    4.1 代码截图

    同学的代码截图


    我的代码截图


    4.2 二者异同

    同:代码行数都差不多
    异:flag的使用不同;我定义了两个flag,该同学定义了一个flag做变量;
    我是使用的方法是先遍历第一个数组,再遍历第二个数组,看是否有相同的元素
    该同学是把两个数组的元素合并成为一串,再用flag判断
    
  • 相关阅读:
    Java8新特性
    搜索解决方案 -- ElasticSearch入门
    插入排序
    单点登录系统CAS入门
    快速排序
    选择性排序
    冒泡排序
    springcloud入门
    消息中间件 -- RabbitMQ
    ActiveMQ中消息的重发与持久化保存
  • 原文地址:https://www.cnblogs.com/112Ada/p/10012216.html
Copyright © 2011-2022 走看看