博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言博客作业--一二维数组
阅读量:5156 次
发布时间:2019-06-13

本文共 2127 字,大约阅读时间需要 7 分钟。

一、PTA实验作业

题目1:求整数序列中出现次数最多的数

1. 本题PTA提交列表

1232265-20171203173501522-911263421.png

2. 设计思路

  • 定义变量
  • 输入一个整数N
  • 定义一个a数组a[N]和b数组b[1000]
  • 输入a数组
  • 外循环令i for 0 to N-1,内循环令j for 0 to N-1 如果出现a[i]=a[j],则b[i]++ end
  • 然后再用一个循环令i for 0 to N-1,如果b[i]>max 则把b[i]赋值给max1,把a[i]赋值给max
  • 输出 max 和 max1

    3.代码截图

    1232265-20171203173713788-121766749.png

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

    一开始我就想定义b数组全为0

    1232265-20171203204018710-636462223.png
    然后我重新对b数组定义,结果
    1232265-20171203204302960-41216986.png
    我发现了输出的b[i]是一个不确定的数,翻书找到了对于int b[n]定义的b数组中的数都是不确定的数,我就定义int b [N]={0}

题目2:简化的插入排序

1. 本题PTA提交列表

1232265-20171203204837101-366666788.png

2. 设计思路

  • 定义变量N为输入的整数个数,number为插入的数字
  • 输入N,定义数组a[10],数组b[N+1]
  • i for 0 to N-1输出数组a[N]
  • 如果N=1,只要比较a[0]与number的大小,数值小就放前面,反之放后面,然后输出
  • 如果N=0,直接输出number
  • 如果N>1,让j for 0 to N,如果number>a[i],则把a[i]赋值给b[j],然后i++;否则把number赋值给b[j],break退出循环
  • 然后然j从break循环出来值到N,把a[j]赋值给b[j+1]
  • j for 0 to N输出b[j] end

    3.代码截图

    1232265-20171203212548382-2092644315.png

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

    刚开始没有考虑特殊情况然后当N=1或0的时候输出一团乱

    1232265-20171203213107726-1891422386.png
    1232265-20171203213247679-1450739068.png
    如果N=0,不进入内循环,直接输出一个不确定的b[j],N=1时,循环只执行一次,number不会被插入

题目3:阅览室

1. 本题PTA提交列表

1232265-20171203214033085-464731861.png

2. 设计思路

  • 定义变量,数组flag[1001]={0},tim[1001],字符ch,space
  • 输出N存入天数
  • i for 1 to N,循环结束后i++,初始化time=0,count=0
  • while(1) 输出booknumbers ch a:b
  • 如果ch=S,tim[booknumber-1]=60*a+b且flag[booknumber-1]=1
  • 否则,如果flag[booknumber-1]==1,即输入E,书收回,则time=time+60*a+b-tim[booknumber-1],count自增,然后flag[booknumber-1]=0,初始化flag=0表示书收回了
  • 如果count=0,输出0 0
  • 否则输出count,1.0time/(1.0count),
  • 输出换行 end

    3.代码截图

    1232265-20171203220033601-1763817316.png

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

1232265-20171203220232913-632396595.png

开始思路清晰,然后打完代码运行学有一个瑕疵,第二个输出值错了
1232265-20171203220847460-1669024377.png
用输出调试发现195=391/2,而题目要求平均时间要四舍五入所以对输出做出修改 printf("%d %.0f",count,(time1.0)/(count1.0))

二、截图本周题目集的PTA最后排名

1232265-20171203221220601-514908744.png

三、同学代码结对互评

1.林岳

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

  • 我的代码

    1232265-20171203222712319-1518622956.png
    -林岳的代码
    1232265-20171203221617429-1416669318.png

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

    首先我对于N的分类先是N=0,然后N>1,然后N=1,条理有点乱而他的处理就比较有可读性

    而且他代码都有注释

四、本周学习总结

1.你学会了什么?

1.1 C中如何存储字符串

  • 使用字符数组存

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

  • ‘\0’,方便给定循环条件

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

  • for(i=0;i<10;i++)
    scanf("%c",&a[i]);
  • while((a[i]=getchar())!='\n')i++;
  • scanf("%s",a);
  • gets(a)

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

    定义字符 c;

    定义变量n;
    输入字符数字c
    n = c-48

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

    16进制:

    定义字符数组a[100]放16进制字符串,result放转化后的结果

    输入数组的值
    for 第一位to最后一位
    若a[]为字符0到9,result=result16+a[k]-'0';
    若a[]为a到f或A到F,result=result
    16+a[k]-'a'或'A'+10;
    输出结果

    2进制

    定义字符数组a[100]存储16进制字符串,result放转化后的结果

    输入数组得值
    for 第一位to最后一位
    若a[]为字符0或1,result=result*2+a[k]-'0';
    输出结果

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

1232265-20171203225156366-1972381240.png

1232265-20171203225233585-638945391.png

3.期中考试小结

3.1 你认为为什么没考好?

  • 没有复习
  • 基础知识掌握不扎实
  • 字面代码不习惯写

    3.2 罗列错题。

转载于:https://www.cnblogs.com/soyam/p/7966606.html

你可能感兴趣的文章
Nancy跨平台开发总结(六)三层架构之Token认证的Rest API
查看>>
51nod 1046 A^B Mod C
查看>>
迭代器
查看>>
JS模拟实现数组的map方法
查看>>
Jmeter启动报错解决方案
查看>>
LPC1768之GPIO
查看>>
使用jQuery获取GridView的数据行的数量
查看>>
通用DbContext封装
查看>>
三,springboot集成mybatis
查看>>
代码实现:输入某年某月某日,判断这一天是这一年的第几天?
查看>>
理解RESTful架构
查看>>
struct、union、enum and sizeof
查看>>
HDU 2604 Queuing(矩阵高速幂)
查看>>
Session优缺点
查看>>
集成activiti-modeler 到 自己的业务系统
查看>>
[CareerCup] 14.1 Private Constructor 私有构建函数
查看>>
Qt Package Project 打包发布程序
查看>>
[LeetCode] 380. Insert Delete GetRandom O(1) 常数时间内插入删除和获得随机数
查看>>
silverlight计时器
查看>>
字符串处理函数和函数
查看>>