while 上限>=下限 中間值=(上限+下限)/2 若是 中間值等於所查找的數 找到數據,退出循環 若是 數>中間值 下限=中間值的前一位 不然 上限=中間值後一位 end while
輸入數據 for(遍歷數組) 若是 找到所插入數的位置 該位置日後數據右移一位,該位置賦值爲插入的數 end for 輸出更改後的數組
1.經過平移數組刪除。數組
for(遍歷數組) 若是 找到所需刪除的數據 從該數據位置日後全部數據向前平移一位,數組長度減一 不然 輸出未找到,退出循環 end for 輸出更改後的數組
2.經過定義第二個數組進行刪除。函數
定義第二個數組b[] for(遍歷數組) 若是 不是所需刪除的數據 b[K++]等於該數據 不然 繼續循環 end for 輸出b數組
1.選擇法排序:學習
for(i=0;遍歷數組) for(j=i+1;遍歷數組) 若是a[i]<a[j] 交換a[i]a[j] end for end for 輸出重構的數組
2.冒泡法排序:每次排序將最大的數移至最後測試
for(i=1;i<=數組長度-1;i++) //排序次數,全排列的次數爲數組長度減一 for(j=1;j<數組長度-i;j++)//每次排序完所需循環次數減一 若是a[j-1]>a[j] 交換a[j-1]a[j] end for end for 輸出重構後的數組
個人函數代碼以下:
字體
個人代碼以下:
指針
/ | 11周 | 12周 | 總計 |
---|---|---|---|
代碼量 | 671 | 613 | 1284 |
定義數組a[10]={0} 輸入年份,不一樣數個數 while(1) 對以年份的4個數字爲下標的4個數賦值爲1 若是數組a中大於0的個數與輸入的不一樣數個數相同 則輸出年份差及當前年份並退出循環 年份加一 end while
輸入數據 | 輸出數據 | 說明 |
---|---|---|
1988 4 | 25 2013 | 年份過1000,n爲4 |
1 2 | 0 0001 | 最小邊界 |
3000 4 | 12 3012 | 最大邊界 |
2019 3 | 2 2021 | n爲3,4爲不一樣的不算 |
233 2 | 67 0300 | n爲2,輸出前補0 |
1.部分正確:沒有考慮到年份小於1000,千位的0沒法記入數組。後續加上對年份小於1000 a[0]++的判斷。 2.所有正確;
輸入數據並找出「@」跟「.」所在下標及出現次數 若是 「@」跟「.」出現次數大於1或者「@」的下標大於「.」的下標 則 輸出NO結束程序 for(i=0;i<「@」下標;i++) 若是 有一個元素不知足條件 則 輸出NO結束程序 end for for(i=「@」下標+1;i<「.」下標;i++) 若是 有一個元素不知足條件 則 輸出NO結束程序 end for 若是 從「.」日後三個元素若是不知足「com」或者com後仍有元素 則 輸出NO結束程序 若都知足 輸出YES
輸入數據 | 輸出數據 | 說明 |
---|---|---|
adf12_@qw_213.com | YES | 正常地址 |
abc@123.comx | NO | com後面有字符 |
abc.@123.com | NO | @前出現. |
abc@@123.com | NO | 多個@ |
abc@123..com | NO | 多個. |
ab c@123.com | NO | 有空格 |
abc123.com | NO | 無@ |
abc@123com | NO | 無. |
1.段錯誤:不知道爲何在PTA使用while語句進行輸入會報錯,在VS卻正常運行。後面改爲scanf 2.部分正確:沒有考慮到com後可能仍有字符的狀況,隨後加上了總字符長度跟m下標大小的判斷 3.部分正確:因爲scanf遇到空格會中止輸入,因此致使數據不全。後面改爲了gets 4.所有正確。
定義數組b//用於儲存符合條件的字符 輸入數據 for(i=0;遍歷數組) 若是 數據符合條件 則 b[k++]=該數據 若是 b在被賦值以前出現'-' 則 flag=1 end for for(i=0;遍歷數組b) 若是 數據在0-9 則 num=num*16+數據對應的十進制數 不然若是 數據在a-z(大小寫均同樣) 則 num=num*16+數據對應的十進制數 end for 若是flag等於1 則num=-num 輸出num
輸入數據 | 輸出數據 | 說明 |
---|---|---|
+-P-xf4+-1!# | -3905 | 有兩個'-' |
a-bda-# | 43994 | '-'無效 |
-((^(*# | 0 | 所有過濾 |
1.部分正確:起先定義num的類型爲double,輸出%.0f數值較大時會出現偏差,致使結果錯誤。而後改爲了int。 2.部分正確:用於判斷結果是否爲負數的flag1未賦初值。隨後賦值爲0. 3.所有正確。