数组
一·.PTA实验作业
7-1 数组元素循环右移问题(20 分)
一个数组A中存有N(>)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M个位置)
设计思路
现将数输入进一个数组,然后让count等于M%N,避免移动的重复,然后在定义一个函数进行一个嵌套循环,将数组右移M次,然后输出
代码截图
本题调试过程碰到问题及PTA提交列表情况说明
出现的问题是这里是右移而我写的是左移,导致一直错
7-4 查找整数(10 分)
本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。
设计思路
现将数输入进数组,然后建立循环让X和数组里面的数一个一个比较,当他们相等的时候让lab=1让count等于j也就是下标,然后加一个判断语句判断lab是否为1进行输出
代码截图
.本题调试过程碰到问题及PTA提交列表情况说明
出现了段错误,经过反复的寻找,我发现了出现段错误的一种可能性是没有加&
7-11 求一批整数中出现最多的个位数字(20 分)
给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。
设计思路定义一个数组让里面的元素都等于0,然后没读一个数就让a[这个数]++,然后最后比较这个数组里面的数谁做大,下标就是这个数
代码截图
本题调试过程碰到问题及PTA提交列表情况说明
由于自己的疏忽,忽略了答案的格式
pta的最后排名
同学互评:吴振迪
振迪的代码更加简洁,不像我的很冗长
学会了什么
1.1一维数组的引用,定义的一般形式为:类型名 数组名 [数组长度]
int a[10]; /*定义一个有10个整型元素的数组a*/
char c[200]; /*定义一个有200个字符型元素的数组c*/
float f[5]; /*定义一个有5个单精度浮点型元素的数组f*/
1.2二维数组行、列下标的对应关系
术语 含义 下标规律
主对角线 从矩阵的左上角至右下角的连线 i==j
上三角 主对角线以上部分 i<=j
下三角 主对角线以下部分 i>=j
副对角线 从矩阵的右下角至左下角的连线 i+j==N-1
1.3字符串的结束符'\0'
1.4字符串的存储、赋值、输入
static char s[80];
s[0]='a';
s[1]='\0';
也可等价于:
static char s[80]="a";
1.5字符数组的输入与输出可以有两种方式
(1)逐个字符输入输出。用格式符“%c”输入或输出一个字符。
(2)将整个字符串一次输入或输出。用“%s”格式符,意思是对字符串(string)的输入输出
1.6区分"a"和'a'.
前者是字符串常量,包括'a'和“\0”两个字符,用一维数组存放;后者是字符常量,只有一个字符,可以赋给字符变量。
还有什么不会
7-5;7-7