C语言博客作业04--数组

1.本章学习总结

1.1思维导图

C语言博客作业04--数组_第1张图片

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

1.2.1学习体会

    最近在学线性代数,以前没有把线性代数学好,学了两周的线性代数,C语言的学习就落下了,打算在考完线性代数后把学习的重心转向C语言。上次上机考试没考好,总结原因在于很多很基本的东西在考试的时候遗忘了,不单单是练得少,书上的习题操作得少,上周末我用一天时间把书上数组的习题包括注释全部通过编译器打在电脑,发觉课本知识很基本,考试知识很灵活。

1.2.2代码累计

C语言博客作业04--数组_第2张图片

2.PTA总分(2分)

2.1截图PTA三次题目集:一维数组、二维数组和字符数组共3次题目集的排名得分

2.2 我的总分:

433分

3.PTA实验作业(6分)

3.1 PTA题目1

    第一行输入两个整数,第一个表示数组长度,第二个表示左移位数,第二行输入数组,求左移后的数组

3.1.1 算法分析

  int n,k;//表示数据n表示数组长度,k表示左移位数
  scanf(n,k);
  if(k>n) k=k%n//通过交换数组实现数据左移,通过求余求出数组的长度
  int a[k],b[n-k];//建立两个数组,调换顺序输出达到数据左移的目的 
  int i;
  for(i=0;i小于k;i++)
     scanf(a[i]);
  end for
  for(i=0;i

3.1.2 代码截图

C语言博客作业04--数组_第3张图片

3.1.3 PTA提交列表及说明

C语言博客作业04--数组_第4张图片

  • Q1:一开始没有弄明白数组的关系,胡乱作答
  • A1:后来理清思路,往左移其实就是数组拿出一部分放到右边
  • Q2: 当k大于n 时出现错误
  • A2:仔细思考,用求余解决问题

    3.2 PTA题目2

输入n个数组,判断是否为上三角形

3.2.1 算法分析

  输入count统计矩阵数目
  for(i=1;i<=count;i++)
              输入行列数row
              定义a[row][row]阶矩阵
              输入数组
           for(j=1;j

3.2.2 代码

C语言博客作业04--数组_第5张图片

3.2.3 PTA提交列表及说明

  • Q1:这题看起来很简单,实际上我在编译器里调试了很多遍,之前对矩阵的个数考虑不充分,对二维数组运用不熟练,使得我的时间被白白耗费
  • A1:孰能生巧别无捷径,多调试几次得出正确答案

3.3 PTA题目3

输入一个字符串,判断是否是合法邮箱,输入的只能是字母、数字、下划线、@以及.五种, @前后只能是字母或者数字,而且.后只能是com, 是则输出YES ,否则输出NO。

3.3.1 算法分析

  int judge1(char *p);//判断单个字符是否全部合法 
  int judge2(char *p);//判断@周围的字符是否合法 
  int judge3(char *p);//判断.后的字符是否合法 
   int main()
        输入数组a
         if(judge1(a)==0)   then printf("NO");//判断邮箱是否合法 ,合法输出YES,否则输出NO 
          else if(judge2(a)==0)    then printf("NO");
              else if(judge3(a)==0)    then  printf("NO");
                          else printf("YES");
                            end if
                       end if
             end if 
  end 
  int judge1(char *p)
       for(;*p!='\0';p++)
             if(数字不是字母、数字、下划线、@以及.)then return 0
              end if
       end  for 
       return 1
  end
  int judge2(char *p)
       for(;*p!='\0';p++)
            if(@两边的数不是数字或者字母)then return 0;
            end if
       end for
        return  1
 end
  int judge3(char *p)
        for(;*p!='\0';p++)
              if(.后面不是com)then return 0
              end if
         end for
         return 1
  end

3.3.2 代码

C语言博客作业04--数组_第6张图片
C语言博客作业04--数组_第7张图片

3.3.3 PTA提交列表及说明

  • Q1:没考虑到单个@出现的情况
  • A1:修改条件,一旦@周围没有字符,这判定邮箱不合法
  • Q2: 没有考虑到 . 后的com后还有字符
  • A2 :增加一个限定条件,一旦com后有字符则判定邮箱不合法
  • A3:本题良心出品的解题步骤,有指针有数组有函数,综合性强。

    4.代码互评

    4.1 代码截图

    同学代码:
    C语言博客作业04--数组_第8张图片

我的代码:
C语言博客作业04--数组_第9张图片
C语言博客作业04--数组_第10张图片

4.2 二者的不同

  • 1.我的代码运用函数指针数组,整体而言主函数更加精简,结构清晰。
  • 2.同学的代码几乎全部放在主函数中,显得冗余。
  • 3.同学的代码有gets输入数据,同时考虑到空格的情况,想法周密。
  • 4.相对来说我的注释会详细很多,代码更加通俗易懂

你可能感兴趣的:(C语言博客作业04--数组)