第四次作业

第四次作业

1.本章学习总结

1.1 思维导图

1474841-20181211183439636-948570757.png

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

1.2.1 学习体会

数组的使用让写代码更加简便,但相对之前的学习来说更需要理解,因此思路尤其重要
作业难度的提升,使学习更具有挑战性
需要更多的练习来熟练的掌握数组的应用方法

1.2.2 代码累计

1474841-20181208200252398-1360699286.png

2.PTA总分

1474841-20181208224638860-1026568235.png
1474841-20181216155417713-418258284.png
1474841-20181216155436724-1696930271.png

3.PTA实验作业

3.1PTA题目1

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

3.1.1算法分析

定义数组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代码截图

1474841-20181216140053644-1163068499.png
1474841-20181216140107791-404516942.png
1474841-20181216140115928-1150148738.png

3.1.3 PTA提交列表及说明

1474841-20181216140307213-2035321158.png
一次通过

3.2题目二

7-5 螺旋方阵 (20 分)
所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。

3.2.1算法分析

 int a[10][10]
输入n,确定要输出的行列数
while (n*n!=c)
while(j+1<n&&!a[i][j+1])//从右向左开始递增
a[i][++j] = ++c; end while
while(i+1<n&&!a[i+1][j])//从上向下开始递增
a[++i][j]=++c;end while
while(j-1>=0&&!a[i][j-1])// 从右向左开始递增
a[i][--j]=++c;end while
while(i-1>=0&&!a[i-1][j])// 从下向上开始递增
a[--i][j]=++c;end while
end while

输出数组

3.2.2代码截图

1474841-20181216141129148-403291136.png

3.2.3 PTA提交列表及说明

1474841-20181216141204955-1246624446.png

3.3题目三

7-2 IP地址转换 (20 分) 一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。

3.3.1算法分析

定义数组字符型a[100],sum[100]
输入a[100]
定义i
for  i=0 i<4 i++
定义number为0
定义m
for m=7 m>=0 m-- 
number+=(a[i*8+m]-'0')*(int)pow(2,7-m);计算对应地址的值
sum[i]=number  储存该值
输出sum数组

3.3.2代码截图

1474841-20181216142329838-1716332774.png

3.3.3PTA提交列表及说明

1474841-20181216142359107-556700966.png
在计算公式上出现一些问题

4.代码互评

4.1代码截图

c 7-2 杨辉三角 (10 分) 打印n行杨辉三角,n<10。
我的代码
1474841-20181216142618954-426678549.png
同学代码
1474841-20181216142804588-1248661758.png

4.2二者的不同

在对特殊情况的处理不同

转载于:https://www.cnblogs.com/cfjblog/p/10088875.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值