一、PTA实验作业
题目1:掉入陷阱的数字
1. 本题PTA提交列表
2. 设计思路
定义sum()函数计算接收数字的各位数之和
- 定义整型变量result储存各位数之和
- for number to number=0:result+=number%10; number/=10
定义主函数
- 1.定义变量n,n_new. n表示旧自然数n_new表示新自然数
- 2.输入n
- 3.for i=1(i++):
- --计算并输出新自然数n_new=3*sum(n)+1;序号为 i .
- --如果n==n_new,即掉入陷阱时break.
- --将n_new的值赋给n,为下次循环做准备: n=n_new.
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
- 无问题
题目2:发红包
1. 本题PTA提交列表
2. 设计思路
- 将money对 面额 从大到小取余得到的值输出然后除以面额·
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
-无问题
题目3:简单计算器
1. 本题PTA提交列表
2. 设计思路
- 1·定义变量:ch=0记录运算符,flag=0标记错误,n储存数值
- 2·输入n,定义result初始值为n储存运算结果·
- 3·while( (ch=getchar()) != '=') :
--输入操作数n
--判断运算符switch(ch) 如果为'+',result+=n; 如果为'-',result-=n; 如果为'',result=n; 如果为'/':如果n==0,flag=1,否则result/=n; default:flag=1 - 判断flag: if(flag)输出result,否则输出 Error·
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
- 无问题
二、截图本周题目集的PTA最后排名
三、本周学习总结
1.你学会了什么?
1.1 一维数组如何定义、初始化?
定义:类型名 数组名 [数组长度];
初始化:对于较短的数组可以直接赋值,如a[2]={0,1};,对于长度大的可以用循环进行赋值,如for(int i=1;i<=1000;i++) a[i]=0;
1.2 一维数组在内存中结构?可画图说明。数组名表示什么?
- 数组名是数组中首元素的地址
1.3 为什么用数组?
- 数组能储存大量数据,方便对多个变量的多次调用.
1.4 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示.
- 冒泡法:for i=0 to n,进入内层循环:for u=0 to n-1 如果a[i]>a[i+1]就交换两者间的值
- 选择法:for i=0 to n-2,将第一个数作为最大数,比较n次,与后面数比较,如果后面的数大,记录下标后与最大数交换值.
1.5 介绍什么是二分查找法?它和顺序查找法区别?
- 对一个已经排序的数组,取其中间位置,记录下标.找比中间值大的就向右二分,否则向左二分.以此类推直到满足条件
1.6 二维数组如何定义、初始化?
- 定义:数据类型 数组名[整常量表达式][ 整常量表达式];
- 初始化:数据类型 数组名[整常量表达式][ 整常量表达式]={ 初值 };或利用循环进行赋值.
1.7 矩阵转置怎么实现?方阵中:下三角、上三角、对称矩阵的行标i列标j的关系?请说明。
-
1.对于数组a[][],定义一个数组b[][],遍历数组a对b赋值:b[r][c]=a[c][r];则b[][]为a[][]的转置
-
2.遍历数组,将数组a[r][c]的值与a[c][r]的值进行交换.
-
下三角中列数不超过行序数:c<=r.
-
上三角中列数不小于行序数:c>=r.
-
对称矩阵:遍历数组,a[r][c]=a[c][r].
1.8 二维数组一般应用在哪里?
- 一般可以应用于矩阵问题.
2.本周的内容,你还不会什么?
- 对于字符数组还不是太理解.
- 其他的基本上理解.