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

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

1.本章学习总结

1.1 思维导图

1474626-20181124230028797-1353757833.png

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

1.2.1 学习体会

在这几周的学中,我的体会如下

1.在学习数组的初始化时,学习了可以使用static进行初始化,而不必用到for循环2.在学习二维数组的过程中,第一次知道了二维数组赋值时行数可不做规定,编译器会自动依照输入的数据以及列数而定3.二分法可以更快地在有序数组中查找所需要的值4.flag也可以转化为数组的形式,做到判断数组是否重复

1.2.2 代码累计

1474626-20181124230935643-1823201870.png

2.PTA总分

2.1截图PTA中顺序结构、分支结构的排名得分

1474626-20181124232042926-917313555.png

1474626-20181124232048604-1070946588.png

1474626-20181124232053644-1551891231.png

2.2 我的总分:

PTA总分:455分

3.PTA实验作业

3.1 PTA题目1

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

3.1.1 算法分析

制造一个方阵 a[12][12];方阵的边长n每次走的步数size,其初值为n循环次数time,初值为 n / 2 + 1;如果是偶数方阵,循环次数time - 1如果是奇数方阵,先把中间值填上 n*nwhile (time--) do//向右打印    for  m = 1 to  size-1  do         a[i][j++] = number++; m++;    end for//向下打印    for  m = 1 to  size-1  do        a[i++][j] = number++; m++;    end for//向左打印    for  m = 1 to  size-1; do        a[i][j--] = number++; m++;    end for//向上打印    for  m = 1 to  size-1  do        a[i--][j] = number++; m++;    end for//数组自增 or 自减    i++; j++;    size -= 2;end while//打印矩阵for  i = 0 to  n-1  do    for j = 0 to j < n  do        printf("%3d", a[i][j]);        j++;    end for    printf("\n");    i++;end for

3.1.2 代码截图

1474626-20181125003709435-1474967.png

3.1.3 PTA提交列表及说明

1474626-20181125005052724-930715813.png

Q:奇数方阵中间值填不上?

A:if判断是否奇数,特殊照顾一下

3.2 PTA题目2

输入2个大数,每个数的最高位数可达1000位,求2数的和。

3.2.1 算法分析

初始化数组 number1初始化数组 number2初始化数组 result为 0scanf("%s", number1);scanf("%s", number2);利用自己写的函数将两个数组中的元素倒置整型定义len,并让他等于两个数中最长的长度for i = 0   to len - 1  do    result[i] = result[i] + number1/*转化为整型*/ + number2/*转化为整型*/        if (result[i] > 9)                    result[i] -10                 result[i + 1] 进一            end if    i++;end forif 最后一位进位了 len++输出result

3.2.2 代码

1474626-20181125003749594-237128893.png

3.2.3 PTA提交列表及说明

1474626-20181125004657627-1103750511.png

Q:当最后一位要进位时,加不上去

A:对result初始化为0,要进位的话下一位加一,并且每次计算加上result原来的值

3.3 PTA题目3

本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。

3.3.1 算法分析

char target[100000];char del[100000];int (targrt数组的长度) lenTar;int (del数组的长度) lenDel;//scanf并获的长度//-----------------------------------------------------//for lenTar = 0  do    不断读数据到target[],直到 \n 停止    lenTar++;//获得长度end forfor lenDel = 0  do不断读数据到del[],直到 \n 停止lenDel++;//获得长度end for//-----------------------------------------------------//for (int i = 0; i < lenTar; i++)    for (int j = 0; j < lenDel; j++)        if (发现共有字符)            删除target[lenTar];            后面的字符往前补;        end if    end forend for//输出字符串

3.3.2 代码

1474626-20181125003804432-2059512815.png

3.2.3 PTA提交列表及说明

1474626-20181125004039587-1113281297.png

Q1:为什么相邻的删除字符只删了一个

A1:没次删除完都要再回到原来的位置重新判断

4.代码互评

4.1 代码截图

范华同学的代码

1474626-20181124235432214-612313409.png

我的代码

1474626-20181125000011613-1378042781.png

4.2 二者的不同

1.范华同学使用的是二维数组,在定义以及循环的过程当中会更加简洁。

2.对时间的输入,范华同学使用的是字符型转整形,其实大可不必,02在用整型输入的过程中会自动转化2.
3.范同学使用的是while单层循环外加repeat判断天数是否到规定天数。我使用的双层while循环,在编写或阅读过程中都简单易懂,而循环节走的次数是一样的。
4.对于时间的计算,范华同学直接转换时间并存储,而我则写了个函数去计算,直接写的话,运行速度会更快一点

转载于:https://www.cnblogs.com/Rasang/p/10014217.html

你可能感兴趣的文章
爬虫基础
查看>>
jquery.lazyload延迟加载图片第一屏问题
查看>>
HDU 1011 Starship Troopers (树形DP)
查看>>
手把手教你写DI_1_DI框架有什么?
查看>>
.net常见的一些面试题
查看>>
OGRE 源码编译方法
查看>>
上周热点回顾(10.20-10.26)
查看>>
C#正则表达式引发的CPU跑高问题以及解决方法
查看>>
云计算之路-阿里云上:“黑色30秒”走了,“黑色1秒”来了,真相也许大白了...
查看>>
APScheduler调度器
查看>>
设计模式——原型模式
查看>>
【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.1.CSS框架和其他功能
查看>>
如何一个pdf文件拆分为若干个pdf文件
查看>>
web.xml中listener、 filter、servlet 加载顺序及其详解
查看>>
前端chrome浏览器调试总结
查看>>
获取手机验证码修改
查看>>
数据库连接
查看>>
python中数据的变量和字符串的常用使用方法
查看>>
等价类划分进阶篇
查看>>
delphi.指针.PChar
查看>>