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

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

    1.本章学习总结

    1.1思维导图

    请以思维导图总结本周的学习内容,如下图所示:
    

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

    1.2.1学习体会

    描述本周学习感受,也可以在这里提出你不理解地方,对教师教学建议等。
    
       这周学习的数组,在上课的时候能听得懂,但下来做题的时候还是不会做题,思路也不是很清晰,而且觉得老师上课得有点快,布置的作业也相对有点多。此外,感觉在做题的时候,总会出现buggy,想了很久才找出。也有过自我反思,课后要复习上课老师讲的内容,但我发现根本不可能(哭笑),感觉每天都很充实,根本没有多少闲暇时间。
          
    

    1.2.2代码累计

    在excel中画如下表格,保存好,复制到博客随笔。注意要累计所有代码量。
    

    2.PTA总分(2分)

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

    贴图展示。
    

    2.2我的总分:215分

    填写三次题目集的总得分。
    <span style ="color:red">注意,请把PTA代码展示给批阅助教,并能完整回答助教问题,才能得满分。否则根据回答情况给分。</span>
    

    3.PTA实验作业(6分)

    在一维数组,二维数组和字符数组每个题目集中选1题你觉得完成难度最大题目介绍,每题2分,做如下内容:
    

    3.1PTA题目1

    简要介绍题目,如:
    
    7-6 数组循环左移 (20 分)
    本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a
    ​0
    ​​a
    ​1
    ​​⋯a
    ​n−1
    ​​)变换为(a
    ​m
    ​​⋯a
    ​n−1
    ​​a
    ​0
    ​​a
    ​1
    ​​⋯a
    ​m−1
    ​​)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?
    
    
    

    3.1.1算法分析

    以伪代码方式描述算法思路。伪代码注意文字+C语法方式描述,不要纯C代码或者C代码直接翻译,能做到看了伪代码就知道你的思路是如何。
    
    
    for(j=1;j<=m;j++)    //循环移动次数
      
    for(i=0;i<n-1;i++)
      	{
      		a[i]=a[i+1];       //往左移
      	}
      	a[n-1]=temp;
    
    for(i=1;i<n;i++)
      {
      	printf(" %d",a[i]);       //控制多余的空格
      }
    
    

    3.1.2代码截图

    贴图展示代码,不要复制,如
    

    3.1.3PTA提交列表及说明

    根据提交列表,简要描述下调试程序碰到的问题及解决办法。
    

    Q1:出现格式错误。
    A1:拿到编译器上去运行,输出的格式有问题,没有控制好空格。
    Q2:提交提示编译错误。
    A2:调试,发现是循环次数有问题。
    

    3.2PTA题目2

    简要介绍题目,如:
    
    一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
    本题要求编写程序,求一个给定的n阶方阵的鞍点。
    

    3.2.1算法分析

    以伪代码方式描述算法思路。伪代码注意文字+C语法方式描述,不要纯C代码或者C代码直接翻译,能做到看了伪代码就知道你的思路是如何。
    
    for(i=0;i<n;i++)
    	{
    		for(j=0;j<n-1;j++)   //用两个for循环控制每行每列的数
    		{
                          if(a[i][j]<a[i][j+1])     //比较相邻数的大小找出该行的最大值所在的列
                                     k=j+1;
    
                    for(t=0;t<n-1;t++)
    			{
    				if(a[t][k]<a[t+1][k])
    				{
    				   p=t;	//找出该列行中的最小数 
    
        if(k!=-1&&p!=-1)    //判断是否存在鞍点
    

    3.2.2代码截图

    贴图展示代码,不要复制,如
    

    3.2.3PTA提交列表及说明

    根据提交列表,简要描述下调试程序碰到的问题及解决办法。
    

    Q1:输出的列标是错误的
    A1:调试后发现问题
    Q2:在DEV上的结果是对的,但在PTA在提交有测试点过不去。
    A2:问同学,找同学帮忙看代码。
    

    3.3PTA题目3

    简要介绍题目,如:
    
    7-6 A-B (20 分)
    本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。
    

    3.3.1算法分析

    以伪代码方式描述算法思路。伪代码注意文字+C语法方式描述,不要纯C代码或者C代码直接翻译,能做到看了伪代码就知道你的思路是如何。
    
    char A[10000],B[10000];   //定义两个字符数组
    
    i=0;
      while((A[i]=getchar())!='\n')
          i++;
      A[i]='\0';                                       //输入字符串
      j=0;
      while((B[j]=getchar())!='\n')
          j++;
      B[j]='\0';
    
    if(flag[i]==1)    //判断是否有字符重复。
    
    

    3.3.2代码截图

    贴图展示代码,不要复制,如
    


    3.3.3PTA提交列表及说明

    根据提交列表,简要描述下调试程序碰到的问题及解决办法。
    

    Q1:编译运行的结果和输入的字符串相同。
    A1:自己找不出错误的地方,问同学。
    Q2:出现段错误。
    A2:数组要开大点。
    

    4. 代码互评

    从同学中找一篇优秀代码,和自己的代码比较下,说明下自己和同学代码区别,各自优势是什么?
    

    4.1 代码截图

    同学代码截图。
    


    自己的代码截图。
    

    4.2 二者的不同

    1,2,3方式罗列2份代码相同及不同地方。建议互评代码尽量找代码风格差异较大。
    

    不同点

      (1)她先找列最小,我先找行最大。
      (2)她找到列最小及行最大是,都是用两个变量表示,我是分别用一个变量表示。
      (3)她给最值列标取的名字很清晰。
    

    相同点

       (1) 都是用for循环来做。
      (2)都定义变量的值最后判断是否满足条件。
    
  • 相关阅读:
    性能百万/s:腾讯轻量级全局流控方案详解
    Swagger2
    shiro 入门
    01、单例模式
    02、工厂方法
    04、模板模式
    13、Adapter 适配器
    14、迭代器
    Java 面向切面 AOP
    spring boot 中使用 Redis 与 Log
  • 原文地址:https://www.cnblogs.com/Gejkdj/p/10087287.html
Copyright © 2011-2022 走看看