首页 > 编程语言 > 详细

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

时间:2018-12-08 23:19:45      阅读:258      评论:0      收藏:0      [点我收藏+]

1.本章学习总结

1.1 思维导图

技术分享图片

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

1.2.1 学习体会

本章学习相对指针来说好理解,但想对前面的知识来说就有一个新的提升,有一定的挑战,
pta作业也比较多,题型也多,但基本都是一些基础的东西,数组在学之前有过一定的使用,
所以在使用时也不会感觉很陌生,总之本章学习比较顺利,一些比较难理解的题目通过一
定时间的研究后也顺利解决。

1.2.2 代码累计

技术分享图片

 

2.PTA总分

2.1截图PTA三次题目集

技术分享图片

技术分享图片

技术分享图片

2.2 我的总分

一维数组:175
二维数组:105
字符数组:150
我的总分:430

3.PTA实验作业

3.1 PTA题目1

7-8 找出不是两个数组共有的元素20 分)
给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 
输出格式:
在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。 

3.1.1 算法分析

```c
定义数组c[40],m,n,i,j,count=-1,flag
输入第一行个数m
定义数组a[m]用于存放第一行的数
for i=0 to i=m-1 do
        输入第一行的数
end for
输入第二行个数n
定义数组b[n]用于存放第二行的数
for i=0 to i=n-1 do
        输入第二行的数
end for
for i=0 to i=m-1 do    //将a数组中有b数组中没有的数存入c数组中
        flag=0
        for j=0 to j=n-1 do
                if a[i]=b[j] then 
                        flag=1
                        break
        end for
        if flag=0 then
                count++
                c[count]=a[i]
end for
for i=0 to i=n-1 do    //将b数组中有a数组中没有的数存入c数组中
        flag=0
        for j=0 to j=m-1 do
                if b[i]=a[j] then 
                        flag=1
                        break
        end for
        if flag=0 then
                count++
                c[count]=a[i]
end for

for i=0 to i=count-1 do   //c数组中有重复的数据不多输出
        for j=0 to j=i-1 do
                if c[j]=c[i] then
                        flag=1
                        break
         end for
        if c[i]=c[count] then  //与最后一个数据相等的都不输出
                flag=1
        if flag=0 then
        输出c[i]
end for
输出c[count]
```        

3.1.2 代码截图

技术分享图片

技术分享图片

技术分享图片

3.1.3 PTA提交列表及说明

技术分享图片

Q1:刚开始题目较长,以为没有对重复数据只输出一个进行规定
A1:后来发现进行解决
Q2:后来的代码输出最后一个会带有一个空格
A2:用了多个方法及时解决

3.2 PTA题目2

 

7-4 阅览室20 分)
天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。
注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录。另外,题目保证书号是书的唯一标识,同一本书在任何时间区间内只可能被一位读者借阅。
输入格式:
输入在第一行给出一个正整数N(≤10),随后给出N天的纪录。每天的纪录由若干次借阅操作组成,每次操作占一行,格式为:
书号([1, 1000]内的整数) 键值(S或E) 发生时间(hh:mm,其中hh是[0,23]内的整数,mm是[0, 59]内整数)
每一天的纪录保证按时间递增的顺序给出。
输出格式:
对每天的纪录,在一行中输出当天的读者借书次数和平均阅读时间(以分钟为单位的精确到个位的整数时间)。

 

 

3.2.1 算法分析

 

```c
定义静态数组time1[1001],book[1001]
定义i,N,num,r,hour,min,count=0
定义 time=0
输入天数N
for N to N=1 do
        输入 书号num,借还标志r,点数hour,分钟数min
        while num!=0 do
                if r==S‘ then
                        book[num]=1
                        time1[num]=hour*60+min     //记录借的时间
                else if r==E&&book[num]==1 then
                        book[num]=0
                        count++                         //计算有效总次数
                        time=hour*60+min-time1[num]+time  //计算总时间
                 输入 书号num,借还标志r,点数hour,分钟数min
end for
if count!=0 then
输出次数和时间
else
输出0 0
time=0,count=0

 

 

 

3.2.2 代码

3.2.3 PTA提交列表及说明

3.3 PTA题目3

3.3.1 算法分析

3.3.2 代码

3.3.3 PTA提交列表及说明

4.代码互评

4.1 代码截图

4.2 二者的不同

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

原文:https://www.cnblogs.com/putianliuzhong/p/10089578.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!