第五次博客作业
0.展示PTA总分
1.本章学习总结
1.1学习内容总结
- 数组中查找数据
(1)顺序查找:不需要排序,遍历数组中所有的元素,查找的时间较长。
(2)二分法查找:需要对数组中所有的元素进行排序,将数据与中间值比较,判断数据所在区间。 - 数组中插入数据
int a[n+1] ;//将数组多定义一个元素用于存放新数据
int temp;
数组从小到大排序
for(遍历数组)
{
if(a[]>num)
{
temp = a[];
a[]=num;
}
}
for(从最后一位开始)
{
a[i]=a[i-1];
}
a[] = temp;
- 数组中删除数据
(1)再定义数组法
int a[n];
int b[n-1];
for(I = 0;i<n;i++)
{
if(I<num)
b[I] = a[I];
else
b[I] = a[I+1];
}
(2)数组左移法
for(;I<n-1;i++)
{
a[I]=a[I+1];
}
- 数组中目前学到的排序方法
(1)冒泡排序法
(2)选择排序法
- 哈希数组用法及案例
删除重复字符
int str[256]={0};
char i;
scanf("%c",&i);
while(i!='\n')
{
str[i]++;
scanf("%c",&i);
}
for (int j=0; j<256; j++)
{
if (str[j]!=0)
{
printf("%c",j);
}
}
用法:新建一个数组,利用字符与整数可以互换这个特性。
2.PTA实验作业
2.1调查电视节目受欢迎程度
- 伪代码
for(n个票数)
{
a[节目编号]++;
}
- 代码截图
- 与同学代码比较
同学的代码使用了switch语句,容易理解
2.2找鞍点
- 伪代码
for()
{
for()找出每行最大的数max
for()找出每列最小的数min
判断数是否与max和min相等
}
- 代码截图
2.3切分表达式
- 解题思路
遍历字符串,如果当前字符是数字或小数点,则判断下一个字符是否也是,是的话呢说明下一个字符能拼在一起凑成一个实数,不是的话呢说明当前字符已经是此实数的结尾了,输出并换行。最后再判断一下正负号,如果在正负号前面是数字,代表是加减号,输出并换行,否则代表是能构成实数的正负号。 - 代码