作業要求一
第一次作業由於沒有即時關注截至時間,最后忘記完成,感覺到自己這個習慣非常不好,以后應該及時完成作業,不應該再拖拖拉拉的。
作業要求二
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分)。