数组
0.展示PTA总分(0----2)
1.本章学习总结(3分)
1.1 学习内容总结
数组中如何查找数据,有哪些做法
- 折半查找法:针对有序数
- 顺序查找法:其执行的操作从数据序列中的第1 个元素开始,从头到尾依次逐个查找,直到找到所要的数据或搜索完整个数据序列。顺序查找主要针对少量的、无规则的数据。
数组中如何插入数据,怎么做,可以写个伪代码或动态图展示方法
输入数据
for(遍历数组)
if(a[i]==date)
index=i找到插入位置
for(i=index;i<n;i++)将该位置以后的数据往后移一位
end for
输出更改后的数组
数组中如何删除数据,这个有多种做法,请一一展示。
- 覆盖删除:从要删除的数开始到数组末尾,让数组前一位等于后一位,即数组左移,直接覆盖要删除的数字,还要考虑数组下标的特别情况。
- 当有重复数字时可以调用辅助数组,时间和空间转换。
数组中目前学到排序方法,主要思路?
- 冒泡排序法:有n个数,则循环n-1趟,a[i]和a[i+1]比较。
- 选择排序法:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。
数组做枚举用法,有哪些案例?
枚举法:https://blog.csdn.net/wq3028/article/details/76204690】
哈希数组用法,目前学过哪些案例,举例展示。
字符数组、字符串特点及编程注意事项。
- 数组是指用来存放字符数据的数组。其定义的一般形式为: char 数组名[数据长度] 。字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用一个字节。
- 字符串常量就是用双引号括起来的字符序列,即一串字符,它有一个结束标志'\0'。字符串的有效长度就是有效字符的个数。
(1). 将字符串存入数组时,由于它有一个结束符'\0',数组长度至少是字符串的有效长度+1。如果数组长度大于字符串的有效长度+1,则数组中除了存入的字符串,还有其他内容,即字符串只占用了数组中的一部分。
(2). 注意事项: 输入字符串时,需要事先设定一个输入结束符。一旦输入它,就表示字符串输入结束,并将输入结束符转换成字符串结束符'\0'。
2.PTA实验作业(7分)
2.1 题目名1(3分)
思路:1.跳过开头的空格
2. 遇到单词的第一个字母计数加一并跳过一个单词的其他字符。
3. 在跳过一个单词的其他字符是的时候,要判断句子有没有结束。
4. 单词之间有多个空格的话,多于不计
我的代码:
同学的:
#include<iostream>
int main()
{
char str[1001];
gets(str);
int count=0;
int i=0;
while(str[i]==' ') //跳过开头的空格
i++;
while(str[i]!='\0') //"\0"是结束标识符
{
if(str[i]!=' ')
{
count++;
while(str[i]!=' ') //跳过一个单词的其他字符
{
if(str[i]=='\0') //判断句子有没有结束,这句很重要,漏掉后出现严重错误,
break;
i++;
}
}
else //如果单词之间有多个空格的话,多于不计
{
while(str[i]==' ' )
i++;
}
}
std::cout<<count<<'\n';
return 0;
}
我是请教室友才完成的,代码简单但容易出错。也容易忽略掉一些步骤。
同学的代码思路很清晰,也容易明白,过程都比较清晰,注释也清楚,值得我学习。
2.2 题目名2(2分)
阅览室题目·
和超星视频的比较
超星视频:定义一个二维数组,存储借阅记录。定义多个数组。数据处理时,分装一个函数来实现功能。
2.3 题目名3(2分)
2.3.1 伪代码
定义flag
输入字符串
for (i = 0 to str[i] != '\n' do
(第一处为第一个字符是正负号时)
end if
if(如果是数字或者小数点的话判断下一位是否是小数点或者数字)
end if
else if(负数的判断 前一位是数字还是其他符号)
else if(正数的判断 数字前一位是不是‘(’)
end for
2.3.2 代码截图
还没有写出来,同学的代码
#include<iostream>
#include<cstring>
using namespace std;
int main(){
char s[50];
cin >> s;
int len = strlen(s),flag = 0;
for(int i = 0; i < len; i++){
if((s[i] >= '0' && s[i] <= '9') || s[i] == '.'){
if((s[i + 1] >= '0' && s[i + 1] <= '9') || s[i + 1] == '.')cout << s[i];
else cout << s[i] << "\n";
}
else if(s[i] == '-' || s[i] == '+'){
if(s[i - 1] >= '0' && s[i - 1] <= '9')cout << s[i] << "\n" ;
else cout << s[i];
}
else cout << s[i] << "\n";
}
return 0;
}