一、PTA实验作业
题目1:7-6 掉入陷阱的数字
1. 本题PTA提交列表
2. 设计思路
- 1.定义输入的变量N,输出次数i,判断变量x,以及第一组J
- 2.输入N,并给i附上初始值0,计算第一次的J
- 3.利用do-while(x!=J)循环循环内
每一次i++,
输出i,J
并使x=J
J=SKT(x);//调用函数 - 4.//若输入的不为陷阱数则需要输出i+1
printf("%d:%d\n",i+1,J);}
自定义函数:(实现 先将其各位数字相加求和,再将其和乘以3后加上1,变成一个新自然数N) - 1.定义变量x为输入的值,sum以及N为返回主函数的值
- 2.利用while(N!=0){
取出各个位数字
累加到sum
将sum*3+1给N
将N返回主函数
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
不能进入下一次的循环,在循环外给i附上初值,给J求出第一次的值再进入循环即可
列表部分正确仅为第一次的结果。
题目2:7-7 发红包
1. 本题PTA提交列表
2. 设计思路
- 1.分别定义abcedfg用于表示各个面额的张数,x为金额数
- 2.输入x
- 3.分别计算
a=x/100;//求100元张数
b=(x-a100)/50;//50元的张数
c=(x-a100-b50)/20;//20元的张数
d=(x-a100-b50-c20)/10;//10元的张数
e=(x-a100-b50-c20-d10)/5;//5元的张数
f=(x-a100-b50-c20-d10-e5)/2;//2元的张数
g=(x-a100-b50-c20-d10-e5-f*2)/1;//1元的张数 - 4.按格式输出面额及张数
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
调试过程没遇到什么问题,
PTA提交显示格式错误,为没有控制数字个位对齐
题目3:7-10 简单计算器
1. 本题PTA提交列表
2. 设计思路
- 1.定义字符变量ch
- 2.定义x=0作为判断变量n为输入的值,i为每次运算的中间值
- 3.利用while(ch!='=')循环,再循环内输入n以及字符利用if-else if语句选择运算式,再除法运算时若除数为0则将x=1并break
- 4.若有非法运算符x=1
- 5.x!=1输出i若x==1输出ERROR
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
没有对除数为零以及非法运算符的情况进行判断
二、截图本周题目集的PTA最后排名。
三、本周学习总结
1.你学会了什么?
1.1 一维数组如何定义、初始化?
一维数组定义,需要明确数组变量名,数组元素类型和数组的大小,其一般形式为: 类型名 变量名 [数组长度]
数组的初始化可以再定义数组时,对数组元素赋初值,其一般形式为:类型名 变量名 [数组长度]={初值表}(可以只针对部分元素)
1.2 一维数组在内存中结构?可画图说明。数组名表示什么?
结构如课本150页图7.2所示
数组名表示该数组所分配连续内存空间中第一个单元的地址
1.3 为什么用数组?
数组可以使一组相同类型数据有序排列,并且连续存放,使用方便。
1.4 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示.
选择法:
- 1.对数组的n个元素附上初值
- 2.利用for对n个元素进行排序
- 3.a[i]<a[min]则将两值交换
- 4.将a[min]返回
冒泡法: - 1.定义变量a[10],i,j,k
- 2.一次将数输入数组
- 3.对n个数排序,for(k=0;k<n-1;k++) max=k
- 4.输出n个数组元素的值
直接插入法: - 1.从第二个数开始
- 2.如果比前一个数小,交换到前一个位置
- 3.重复2,直到该数前面没数字或者前面的数比它大
1.5 介绍什么是二分查找法?它和顺序查找法区别?
二分查找法:先确定该区间的中点位置,将待查的x值与a[mid]比较,若相等,则查找成功并返回此位置,若a[mid]>x,则新的查找区间是a[1..mid-1]若a[mid]<x,则新的查找区间是a[mid+1..n]
二分查找法适用于排序过的数组,不必将每一个元素都进行比较,速度快,顺序查找法要遍历数组
1.6 二维数组如何定义、初始化?
定义:类型名 数组名 [行长度][列长度]
初始化:分行赋初值:int a [3] [3] ={ { 1,2,3} , {4,5,6} ,{7,8,9} } 顺序赋初值: int a [3] [3] = {1,2,3,4,5,6,7,8,9}
1.7 矩阵转置怎么实现?方阵中:下三角、上三角、对称矩阵的行标i列标j的关系?请说明。
对角线上元素不变,其余元素两个下标互换
上三角:i<=j
下三角:i>=j
对称矩阵:a[i][j]==a[j][i]
1.8 二维数组一般应用在哪里?
矩阵,表
2.本周的内容,你还不会什么?
对于二维数组的部分极不熟悉,考试题中一些基本的概念性的问题,以及对于手写代码,考试发现对于函数部分的知识仍旧掌握不牢固。对于数组只是知道其基本的概念,涉及到应用层面的问题就凉凉了。PTA中一些需要判断的问题,没能第一时间想出判断的方法有时还忘记去判断。对于一些题目的本意有的也不太理解。