这个作业属于哪个班级 | C语言--网络2011/2012 |
---|---|
这个作业的地址 | C博客作业04--数组 |
这个作业的目标 | 学习数组相关内容 |
姓名 | 崔天赐 |
0. PTA总分
1. 本章学习总结
1.1 学习内容总结
-
数组中如何查找数据,有哪些做法
用循环让数组的下标逐个变化,再一一进行对比,判断出要寻找的数。
将要找的数放在一个数组中,再在另一个数组中循环输入被查找的数组。 -
数组中如何插入数据,怎么做,可以写个伪代码或动态图展示方法
找到插入位置
记录该位置
for循环将该位置及以后的数组向后移动一个位置
将插入数据输入标记位置 -
数组中如何删除数据
1.针对数组位置:构建一个新数组保存需要删除的位置;保存后再一一对应的位置上一次次左移。
例如pta数组7.9
2 .针对数组元素:可以构建哈希数组,对哈希数组上的值赋0或1;再根据判断进行输出。
例如pta字符数组7.3
-
数组中目前学到排序方法,主要思路
冒泡排序法:以从大到小为例,将第一个数与第二个数对比,若第一个数比第二个数大,进行一次调换再将第二个和第三个数对比,若第二个数比第三个数大,再进行调换,以此类推,则第一轮结束后可得到最大的最后一位数,再经一轮得到第二大的倒数第二位数,以此类推,完成排序。 -
数组做枚举用法,有哪些案例
数组赋值
int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; -
哈希数组用法,目前学过哪些案例
1.定义一个辅助数组,用时间换空间
2.定义一个辅助数组hash[?],下标为目标数组的元素(如果目标数组是字符数组,需减去‘ ’转换成特定的整型数字),辅助数组初值为0;
3.若hash[N]等于0,说明仅有一个,无重复。 -
字符数组、字符串特点及编程注意事项
1.字符串常量就是用一对双引号括起来的额字符序列,即一串字符,结束标识符为' '。
2.字符串由有效字符和字符串结束符' '组成。
3.字符数组的初始化
static char s[6]={'H','a','p','p','y',' '};
or
static char s[6]={"Happy"};
or
static char s[6]="Happy";
2. PTA实验作业
2.1 有重复的数据
2.1.1 伪代码
static int b[100001]; //用静态变量static将数组b初始化为0
for (i = 0; i < n; i++){
scanf("%d", &a[i]); //输入a[n]
b[a[i]]++; //统计每个数字出现过的次数
if (b[a[i]] > 1){ //出现次数大于1的为重复数据
printf("YES");
break;
}
2.1.2 代码截图
2.2 找鞍点
2.2.1 伪代码
定义数组和max数组
for
if (a[i][j] >= a[i][maxi]) //判断行最大数并记录位置到max数组中
{
maxi = j;
}
max[i] = maxi;
end for
for
//判断上述已经是行最大数的数是否为列最大数
if(不是) break//跳出循环
if (是) printf("%d %d
", j, max[j]);//输出鞍点位置,并结束程序
end for
输出无鞍点
2.2.2 代码截图
2..2.3 和超星视频做法区别,各自优缺点。
稍微借鉴了超星视频的做法,思路一致,不同的是视频运用了分装函数的办法让整个过程更加清晰明了
2.3 切分表达式
2.3.1 伪代码
if str[i]是'('或')'或'*'或'/'
找到token 换行输出str[i]
if str[i]是数字或小数点
if后一位是数字或小数点
输出数字不换行
else
输出数字,数字token结束。输出换行
if str[i]是'+'或'-'
if i==0 或 前一位是'('
str[i]是正负符号,输出不换行
else
是token 换行输出str[i]