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,但思路混乱,不用多久就不会做了,效率极差,由于前几星期计划不周,做作业都很赶更没什么时间复习,所以增加一天回顾三道题目的计划。
  • 相关阅读:
    iOS开发之详解剪贴板
    iOS7(Xcode5)中隐藏状态栏的方法
    如何使用iOS手势UIGestureRecognizer
    如何给列表加入搜索功能
    UITabBarController 相关
    UIButton 相关
    UINavigationController 相关
    Apple Watch 会再一次改变世界么?
    编译VLC for IOS
    ffmpeg Win8移植记(二)
  • 原文地址:https://www.cnblogs.com/Zeng99/p/7944864.html
Copyright © 2011-2022 走看看