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

    一、PTA实验作业

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

    1. 本题PTA提交列表

    2. 设计思路

    定义数组数n,循环变量i,j
    输入 n
    定义数组Num[n]
    
    for j=n-1 to j>=0
    共n次
    如果j等于0
    则输出Num[j]
    否则
    在输出Num[j]后还要输出空格
    
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明。

    - 由于是第一题所以没有截图所遇到问题如下

    • 格式错误:在最后一个数字后多了空格
    • 解决方案:增加一个判断,当判断出是最后一个数时直接输出

    题目1:7-3 出生年

    1. 本题PTA提交列表

    2. 设计思路

    定义初始年份Year,不同的数字数量D, 用于储存Year的Y,Y2,求和Sum=0,循环变量i,j,k,g
    定义数组d[4]={0}用于储存年份的各个位数,Com[10]={0,1,2,3,4,5,6,7,8,9}用于与d[4]中的数比较,Count[10]={0}用于储存Com[10]与d[4]比较的结果
    输入 Year,D;
    Y=Year;
    Y2=Year;   
    while(1){
          for i=0 to i<4
    共4次
          对Year取余,减少十倍
          对d[i]从0到4分别赋予年份Year的个位数,十位数,百位数,千位数
          for j=0 to j<4
    共4次
               for g=0 to j<4
         共4次
                如果d[j]==Com[g]
                     Count[g]++;
    
         for k=0 to k<10
    共 10次
                如果Count[k]!=0
                令Count[k]=0方便下一轮循环
                Sum++;统计年份中不同数字的数量
    
    如果 Sum==D,符合题目所要求的不同数字的数量
                输出("%d %04d",Y2-Y,Y2);//其中%04d位宽为4,不够往左补0
                break;结束循环
    
    Y2+=1;年份加一
    Year=Y2;
    Sum=0;//不同数字量初始化 方便下一次循环
    }
    
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明。

    这道题想了很久没有思路,后来听了同学的口头思路自己打了代码,在Dev上成功后就提交成功了

    题目1:7-4 简化的插入排序

    1. 本题PTA提交列表

    2. 设计思路

    
    定义非负整数n,插入的数m,中转变量t,循环变量i
    输入n
    定义数组a[10]
    for i=0 to i<n
    共n次
         数组赋值
    输入m
    a[n]=m令最后一个数组等于m
    for i=0 to i<n
    共n次
           如果a[n]<=a[i]
           交换a[n]与a[i]的值
    
    for i=0 to i<n
    共n次
           输出a[i]
    
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明。

    由于忘记了,所以没有截图调剂过程,具体问题如下

    • 问题:”在遇到比要求的数大的数后我进行了交换,但导致了原数组中用于交换的数的缺失,即在数组输出时没有该数
    • 解决方案:如图所示代码,在循环进行到比要求大的数之后,接下来数组中的数分别向后移动了一位
      具体操作如下:

    二、截图本周题目集的PTA最后排名。(2分)

    三、同学代码结对互评(1分)

    1.互评同学名称:王宵莹

    2.我的代码、互评同学代码截图

    • 我的代码

    • 王宵莹的代码

    3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

    • 不同之处:我与王的思路大体相同,但是我比王宵莹多了一行判断它只有一位数的情况代码
    • 我更喜欢王宵莹的,因为我觉得她的代码更加简洁

    四、本周学习总结(3分)

    1.你学会了什么?

    1.1 C中如何存储字符串?

    • 使用字符数组存;
    char name[] = "字符串";
    
    

    1.2 字符串的结束标志是什么,为什么要结束标志?

    • 字符串的结束标志是''
    • 字符串是借助于字符型一维数组来存放的,''ASCLL代码值为0,它作为标志占用存储空间但不记入串的实际长度,所以用来作为字符串的结束标志。有了''标志后,就不必再用字符数组的长度来判断字符串的长度了,
      如果没有的话会数组越界,内存溢出。程序崩溃。

    1.3 字符串输入有哪几种方法?

     (1)gets(a)
     (2)scanf ("%s", a)是读到空格停止。
    
    

    1.4 数字字符怎么转整数,写个伪代码?

    char  a
    
    int b
    
    b=(int)a-48;
    
    

    关于高助教的评论做出的实验

    1.5 16进制、二进制字符串如何转10进制?写伪代码?

     定义 十六进制数s,十进制sum,储存s数n,s的位数num
    输入 s
    n=s
    while(s!=0)
        s/=10;
        num++;
       计算s的位数
    
    定义数组a[num]
    将s的各个位数分别赋值入a[num]
    
    for i=0 to i<num
    共num次
    sum+=a[i]乘以16的i次方
    
    则sum就是16进制转换得到的10进制
    
    二进制的转换如上,就是将16的i次方改为2的i次方
    
    

    2.本周的内容,你还不会什么?

    • (1).对于二维数组的输入变量赋值,转置
    • (2) 数组的左移与右移

    3.期中考试小结

    3.1 你认为为什么没考好?

    • (1)一些基础知识没有掌握,比如静态变量和全局变量,以及数据运算中各种符号的算法
    • (2)读代码的能力有待提高,在第二题分析程序上得分甚少
    • (3)粗心,有些题目在自己能力范围内因为分析错误,看错变量失分

    3.2 罗列错题。

    1.选择题11

    • 基础知识不牢固
    • 要多注重对基础知识的掌握

    2.填空题4

    • 观察错变量
    • 减少对编译器的依赖,增加自己的读代码能力

    3改错题

    • 还是基础知识没有掌握牢固,还有错题没有及时复习
    • 在错了之后,改了之后的一段时间内还要有对这方面复习的计划

    4编程题2

    • 公式错误
    • 对于这次的编程题我还是对自己比较满意的

    3.3 下半学期要怎么调整C的学习?

    • 对于作业的安排计划还不够合理,现在的作业大部分还是等到周五晚和周末两天完成,预习作业,博客园与pta,搞得时间短任务重,学习效率不高
      所以计划至少在周三前完成pta的一半,并写一道到pta中,在编程时遇到什么困难直接记录到博客园中
    • 自己的思路经常会很复杂,所以增加一天一篇优秀博客的阅读计划
    • 做过的题目再做还是会忘记怎么做,尤其是当时勉强通过pta,但思路混乱,不用多久就不会做了,效率极差,由于前几星期计划不周,做作业都很赶更没什么时间复习,所以增加一天回顾三道题目的计划。
  • 相关阅读:
    LeetCode 811. Subdomain Visit Count (子域名访问计数)
    LeetCode 884. Uncommon Words from Two Sentences (两句话中的不常见单词)
    LeetCode 939. Minimum Area Rectangle (最小面积矩形)
    LeetCode 781. Rabbits in Forest (森林中的兔子)
    LeetCode 739. Daily Temperatures (每日温度)
    三种方式实现按钮的点击事件
    239. Sliding Window Maximum
    14.TCP的坚持定时器和保活定时器
    13.TCP的超时与重传
    12.TCP的成块数据流
  • 原文地址:https://www.cnblogs.com/Zeng99/p/7944864.html
Copyright © 2011-2022 走看看