C博客作业04--数组
C语言博客作业04--数组
这个作业属于哪个班级 | C语言--网络2011/2012 |
---|---|
这个作业的地址 | C博客作业04--数组 |
这个作业的目标 | 学习数组相关内容 |
姓名 | 姚庆荣 |
0.展示PTA总分(0----2)
1.本章学习总结(3分)
1.1 学习内容总结
数组中查找数据:
-
一维数组:例:查找数组
a[8]
中第4个数据是输入a[3]
; -
二维数组:例:查找数组
a[4][8]
中第3行第2列数据是输入a[2][1]
-
对于乱序数组:逐一查找.
-
对于顺序数组:使用二分查找法.
-
做法:记录插入位置,通过for循环插入数据,并将数组向后移动一位,
数组中删除数据:
- 构建新数组保存需要删除的位置;保存后再逐一将后续数值向前进一个位置。
数组中排序方法:
- 选择排序法:外循环控制选择轮次,内循环从1到n控制单轮的排序次数
- 冒泡排序法:外循环控制冒泡轮次,内循环从0到N-j-1控制单轮的排序次数
枚举用法:
例:查找整数, 统计一行文本的单词个数,删除数字字符等
字符数组、字符串特点:
- 字符串常量是用一对双引号扩出来的字符序列;
- 一个字符串结束符'\0';(fgets函数自动添加结束标志)
- scanf(“%s”,str)无法接收带空格的字符串;
- fgets(数组名,值域,stdin)函数能接收带空格的字符串。
2.PTA实验作业(7分)
2.1 调查电视节目受欢迎程度
2.1.1 伪代码
for(i=0 to n)
if(1<=likenumber<=8)
对应节目数值+1;
end if
end for
2.1.2 代码截图
2.1.3 找一份同学代码(尽量找思路和自己差距较大同学代码)比较,说明各自代码特点。
莫夕
比较:思路基本相同,但我的代码中定义的变量较为具体。
2.2 找鞍点
2.2.1 伪代码
for(j=0 to n-1)
寻找行中最大值
end for
for(j=0 to n-1)
寻找列中最大值
end for
比较列最大值和行最大值;
若相等输出相应行列;
不相等输出NONE;
2.2.2 代码截图
2.2.3 请说明和超星视频做法区别,各自优缺点。
代码循环次数较多,且行列的比较可以归为一个函数,继续优化的部分多。
2.3 切分表达式
2.3.1 伪代码
输入字符串fgets
for (i=0 to '\0')
if(第一个字符是正负号时)
end if
if(字符为数字或者小数点判断下一位是否是小数点或者数字)
end if
else if(负数的判断 前一位是数字还是其他符号)
else if(正数的判断 数字前一位是不是‘(’)
end for
2.3.2 代码截图
2.3.3 请说明和超星视频做法区别,各自优缺点。
视频中对判断条件的使用函数分装,有利于代码的阅读;
视频中是对小数点、括号等分开进行判断,而自己代码中步骤较为繁琐。