作业要求一
第一次作业由于没有即时关注截至时间,最后忘记完成,感觉到自己这个习惯非常不好,以后应该及时完成作业,不应该再拖拖拉拉的。
作业要求二
6-1 在数组中查找指定元素
1 设计思路(6分)
(1)主要描述题目算法
第一步:阅读题目,找出题目的要求—— 在数组中查找指定元素并且输出它的最小下标。
第二步:使用循环方式进行查找,如果可以找到,就输出它的下标。
第三步:如果找不到,则输出-1,这样系统会自动判断。
(2)流程图(4分)
2.实验代码(2分)
int search(int list[], int n, int x)
{
int * p,i;
p= &list[i];
for (i = 0; i < n; i++)
{
if(*p++==x)
return i;
}
return -1;
}
3.本题调试过程碰到问题及解决办法(12分)
错误信息1:
错误原因:没有使用指针的方法
改正方法:先设出p,将p=&list[i],这时p就等于list[i],也就是说p可以代表之前的数组,利用循环语句再将它与需要寻找的值做对比,进一步进行判断。
6-2 找最大值及其下标
1 设计思路(6分)
第一步:阅读题目可以得知寻找数组中的最大值并且输出它的下标
第二步:先把第一个数赋予max,然后进行比较,如果第二个数比第一个数大,则把它赋予max,且把下标赋予*b。
第三步:最后再将max输出。
(2)流程图(4分)
2.实验代码(2分)
int fun(int *a,int *b,int n)
{
int i;
int max=*a;
for(i=1;i<N;i++)
{
if(*(a+i)>*a)
{
*b=i;
max=*(a+i);
}
}
return max;
}
3.本题调试过程碰到问题及解决办法(12分)
错误信息1:
错误原因:题目中给出的数组是a,而我使用的a[0],题目已经给出了输出,但我没有返回,直接又自己使用了输出。
改正方法:向同学请教后,将数组a中第一个数赋值给了max,然后再进行判断a+1是否大于a,如果不是就将其替换,最后再输出max和*b。
要求三、学习总结和进度
1、总结两周来所有PTA作业中每个题目所使用的知识点。
这两周以来主要学习了指针的使用,而这两道题则对最近学习的知识点有很好的应用。首先这两道题都使用了间接访问运算符,其次第一题还考察了p++的用法,以及和其他有关于p的运算
第二题主要是上学期有关于使用循环查找最大值的知识点,再结合这学期学的指针中数组与地址的关系来考察的。
2、将PTA作业的源代码使用git提交到托管平台上
git地址:https://git.coding.net/MikeJackYao/The-first.git
3、点评3个同学的本周作业
4、请用表格和折线图呈现你本周(3/513:00~3/19 8:00)的代码行数和时间、博客字数和时间(3分)。