pta陣列作業

2022-08-28 00:09:09 字數 1485 閱讀 8841

7-2

設計思路:本題要求處理資料並輸出最大值及其對應的最小下標,首先輸入n,然後定義乙個長度為n的陣列用於儲存資料,定義m=a[0],n=0,從a[1]開始與m進行比較,若某項大於m,就把該項的值賦給m,同時把其下標的值賦給n.迴圈結束後,輸出當前的m和n

流程圖:

除錯過程:1,

如圖,沒有考慮到輸入單個數時不用進行判斷,應把n=1和n>1的情況分開

2,如圖,在前乙個提交的基礎上,僅僅是加上當n=1的情況,但是當n>1時,n=1的情況都是存在的,因此會輸出兩遍導致錯誤,應在其後加上判定條件if(n>1)

7-3設計思路:本題要求將陣列中的資料逆向存放,首先輸入n,建立陣列,然後輸入n個值。對於子函式中,只要將第i個數和第n-1-i個數交換即可,一直進行到i>=n/2

流程圖:

除錯過程:

如圖,沒有注意到題目格式的要求,輸出時最後一項後時沒有空格的,因此只有當輸入乙個數時才能執行正確,應分為兩種情況,當i=n-1時,輸出不帶空格的值,否則輸出帶空格的值。

7-4設計思路:本題要求再給定的n個整數中查詢某個數,首先應輸入n,建立陣列,輸入n個值。然後輸入待查整數,建立乙個迴圈,從a[0]開始,若a[i]等於待查整數,則輸出i,若知道a[n-1]都沒找到,則輸出not found

流程圖:

除錯過程:

如圖,沒有將i=n與i!=n的情況區分開,導致出現兩個結果,應在第二個輸出前補上else

#同學**結對互評

同學的**:

我的**:

不同在於:同學的思路是將題目要求插入的x當作已有陣列的後一位組成新陣列,而後通過排列得到有序的陣列。而我的思路是將x與相鄰的兩個數比較,如果x恰好處於這兩個數之間,則前面的數原封不動複製給新陣列b[10],x頂替後一位的位置,從後一位開始,原來陣列的數的位置後移一位。從而得到新陣列。

#本週pta排名

#本週學習總結

1,學會了運用陣列去儲存多位資料,在子函式與主函式形參與實參的傳遞中,用陣列名稱為陣列首位址可傳遞,不要一直執著於全域性變數。

2,對涉及字串的題目不夠熟練

PTA作業筆記

記錄在pta上做的幾道關於分治與遞迴的題目筆記 time 2021.3.11 函式介面 void merge sqlist l,int low,int m,int high 合併兩個有序序列 void mergesort sqlist l,int low,int high 遞迴切分序列函式 void...

pta實驗作業

題目二陣列練習 void main int x,i,j 6 printf 原來的陣列從小到大順序如下 n printf 12,17,20,25,28,30 n printf 請輸入要插的數 n scanf d x a 0 x i j while a i x a i x j for i 1 i j i...

pta迴圈作業

7 7 計算階乘和 1.題目 2.設計思路 此題目比一道類似的經典題目的區別就是不是直接的數字累加而是每次的數字先累乘之後再累加 只需要在累加之前處理一下所要加的數字就可以實現了 3.流程圖 4.答案結果 題目二 7 5 2.設計思路 定義變數和輸入迴圈次數及輸入題目要求的數字,迴圈比較不斷把最小的...