C语言博客作业04--数组

1.本章学习总结(2分)

1.1 思维导图

 

 

1.2 本章学习体会及代码量学习体会

1.2.1 学习体会

数组的题目太多了,然后这周又线代考试,因为线代上课的时候没有专心听讲,所以花了很多的时间去补回来,导致题目集才完成了大概三分之一,然后我对字符数组的理解不够深,主要还是字符的输入和储不太懂,所以之前卡在字符数组上,做不下去,字符数组感觉比较抽象。不好理解。导致二维数组还没开始做,字符数组引入了一些定义,去搜了也不太理解。老师有要求尽量用函数的方法去做,对字符传参不太理解,所以都没去用函数的方法去做。作业感觉挺多的,数组pta题目数太多。也是我对数组这块不太会的原因。导致进度缓慢,卡了一题能卡很久。

1.2.2代码累计

 

2.PTA总分 

2.171+53+10

2.2我的总分 234

3.PTA实验作业

3.1PTA题目1

给定两个整型数组,本题要求找出不是两者共有的元素。

3.1.1算法分析

int 定义数组a        数组a储存第一行数据
int 定义数组b       数组b储存第二行数据
int 定义数组c       数组c储存不同的数据
两个for循环将数输入数组a和b
for(j=0;j<n1;j++)
flag=0;            定义控制变量flag=0
for(i=0;i<n2;i++)
if(a[j]==b[i]) flag=1;       如果两数列有相等的就让控制变量flag=1
if(flag==0)
int h,flag1=0;          如果flag=0 定义变量h,flag1=0
for(h=0;h<=count;h++)     声明数组c的数组长度
if (c[h]==a[j])
flag1=1;            令flag1=1
if(flag1==0)            如果flag==0即没有相等的
{
c[count]=b[j];         将b[j]赋给c数组
count++;
}
下面类似

 

3.1.2代码截图

 

 

3.1.3 PTA提交列表及说明

一开始一直没什么思路,一开始都是答案错误,然后发现自己没办法把c中重复的删了,后面看了一下同学的答案,改正了,devc可以过,pta一个测试点一直过不了,我卡了好久,后面放弃了,今天再来提交一遍,发现又能过了。

3.2题目二

输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。

 

3.2.1算法分析

int number=0,i,count=0,flag=0; 定义转换的十进制数初值为0,count判断是否出现过十六进制数,flag判断是否在第一个十六进制数出现后一位为负号
char str[100]; 定义数组str
定义i=0
for(i=0;str[i]!='\0';i++)
用三个if判断输入的数的范围。
if(count==1) 判断count是否为1 ,如果为1则代表此时只出现一个十六进制数
printf("-");
printf("%d",number); 最后输出结果

3.2.2代码截图

 

3.3.3PTA提交列表及说明

这个是因为那个负号,我一开始条件写成只要第一个十六进制出现,之后就打印一个负号,然后没有发觉,一直是这个测试点错。后面今天检查了一下发现了问题,改了一下就过了。这个其实不难。

3.3题目三

对于给定的一个四则运算表达式,请把她的每个token切分出来。

 

3.3.1算法分析

int i=0,flag=0;
int a[41];                 定义数组
while((a[i]=getchar())!='\n')      输入数组a
i++;
a[i]='\0'; 结束符
i=0; 初始化i
if(a[i]=='-'||a[i]=='+')           如果读到的是正or负号
{
if(i==0)                如果第一个读到的是正or负号
{
printf("%c%c\n",a[i],a[i+1]);     输出正or负号和后面的一个数字
i++;               递增i
}
                后面再跟几个else if分别讨论当出现正or负号后面和前面出现的字符是什么
                再根据题目条件输出

3.3.2代码截图

 

 

3.3.3PTA提交列表及说明

 

 我就只提交了一次,后面不知道怎么过第四个测试点,我pta上那个测试点我用了1+(-3)*3在devc上测试过了,不知道第四个测试点怎么过。。。

4.代码互评

4.1代码截图

 

4.2二者的不同

她没用二分法去查找数字,而我用到了二分法。

posted @ 2018-12-08 22:21  做作业做作业  阅读(365)  评论(0编辑  收藏  举报