C语言博客作业--数据类型
一、PTA实验作业
题目1:7-4 打印菱形图案
1.本题PTA提交列表
2.设计思路
/上部分/
1.定义变量n储存高度,i,j,k循环变量
2.输入n
3.for i=1 to i>(n+1)/2
4.for j=1 toi>n-2*i+1
输出空格 4end
5.for k=1 to k>2*i-1
输出* 5end
6.输出换行 3end
/下部分/
7.for i=(n+1)/2-1 to i=0
8.for j=1 to j>2*i-1
输出空格 8end
9.for k=1 to k>2*i-1
输出* 9end
10 输出空行 7end
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- 格式错误:下半部分循环条件设置错误,本该是i>0,被我设置为i>=0,就导致最后结果多一空行
- 编译错误:变量未声明就使用,在编译器提示下找到错误
题目2:7-6 掉入陷阱的数字
1.本题PTA提交列表
2.设计思路
定义n0,n1,n2
输入n0
for i=1 to
for
n2=n2+n1%10 ,n1=n1/10
如果n1=0 end
n2=n2*3+1,按题目格式输出
如果n2=0 end
n0=n2 n2=0
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- 运行超时 因为循环条件设置失误导致程序死循环
题目3:7-10 简单计算器
1.本题PTA提交列表
2.设计思路
定义变量 number1存放操作数1,number2存放操作数2字符变量op
输入number1
while 输入op不为等号
判断符号,执行相应运算
输出
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- 部分正确 没有考虑分母为0,whie内输入语句没括号,在pta提示中发现问题
二、截图本周题目集的PTA最后排名
三、本周学习总结
1.你学会了什么?
1.1 一维数组如何定义、初始化?
- 可以在输入n之后定义,也可以定义一个足够大的数组,用循环结构给他初始化
1.2 一维数组在内存中结构?可画图说明。数组名表示什么?
- 数组名表示数组在内存中的起始地址
1.3 为什么用数组?
- 使用数组会让程序变的简单,而且避免了定义多个变量的麻烦
1.4 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示.
- 冒泡法:循环n趟,每趟比较n-i次,相邻比较,逆序交换,大数沉底
- 选择法:n个数循环n-1趟,将第一个数作为最大数,比较n次,与后面数比较,如果后面数比较大,记住他的下标,与最大数交换
- 插入法:循环n趟,将待插入数暂存于变量t中,在数组中寻找插入位置,若未找到插入位置,则当前元素后移一个位置
1.5 介绍什么是二分查找法?它和顺序查找法区别?
- 每次将数组折半,判断查找的数所在区间,再次折半,直到找到该数或无法折半,区别:二分法要求数组按顺序排列,但他效率一般比较高
1.6 二维数组如何定义、初始化?
- 输入n后定义a[n][n],用嵌套循环输入
1.7 矩阵转置怎么实现?方阵中:下三角、上三角、对称矩阵的行标i列标j的关系?
- 用嵌套循环遍历数组,如果i<j,就交换i,j的值,下三角:列小于行,上三角列大于行
1.8 二维数组一般应用在哪里?
- 一般运用在矩阵的问题
2.本周的内容,你还不会什么?
- 当时不懂该代码作用,现在知道他是用于进制转换,所以会做了