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

1.本章学习总结

1.1 思维导图

1474688-20181209222929214-705851937.png

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

1.2.1 学习体会

感觉数组不好做,一口气布置这么多,又有课堂派,还要复习线性代数,进度一下子跟不上来。

1.2.2 代码累计

1474688-20181209224018373-1968150451.png

2.PTA总分

2.1 PTA三次题目集的排名得分

一维数组
1474688-20181210165854190-433554212.png
二维数组
1474688-20181210165911694-136966528.png
字符数组
1474688-20181210165931823-2052111017.png

2.2 我的总分

305分

3.PTA实验作业

3.1 PTA题目1

在一行中输出循环左移m位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。

3.1 算法分析
输入数m,n
定义一个数组a
m=m%n
if m=n then 
    if i=0 then 输出a[i]
    else 输出 a[i]
else
    for i=m to n do
        if i=m then 输出a[i]
        else 输出 a[i]
    end for
    for i=0 to <m do
        输出a[i]
end if
3.1.2 代码截图

1474688-20181211102018884-1631549621.png

3.1.3 PTA提交列表及说明

1474688-20181211102218177-1229762980.png
Q1:刚开始做的时候没想到m会大于n。
A1:使用求余解决。

3.2 PTA题目2

读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。

3.2.1 算法分析
定义一个静态数组hash
输入n
flag=0
for i=1 to n do
    输入数字
    hash[number]++
    if hash[number]>1 then flag=1
end for
if flag=1 then 输出YES
else 输出NO
end if
3.2.2 代码截图

1474688-20181211104615642-597821307.png

3.2.3 PTA提交列表及说明

1474688-20181211104635456-774824755.png
Q1:原来的算法是判断这个数组是否有数字相等,结果一个测试点运行超时。
A1:改用哈希数组的方法解决。

3.3 PTA题目3

输入在2行中先后给出字符串A和B,在一行中打印出A−B的结果字符串。

3.3.1 算法分析
定义2个字符数组a,b
定义静态数组hash
输入a数组
输入b数组
for i=0 to b[i]&&b[i]!='\n' do
    hash[b[i]]++
end for
for i=0 to a[i]&&a[i]!='\n' do
    if hash[a[i]]=0 then 输出a[i]
end for
3.3.2 代码截图

1474688-20181211111451244-1734939338.png

3.3.3 PTA提交列表及说明

1474688-20181211111244891-1835422960.png

4.代码互评

4.1 代码截图

同学代码截图
1474688-20181216211103751-430747338.png
自己的代码截图
1474688-20181216211127446-1087797785.png

4.2 二者的不同

同学使用了二分法查找,而我是逐个查找,效率同学更高。

转载于:https://www.cnblogs.com/p123/p/10089067.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值