C語言部落格作業04 陣列

2022-05-04 07:18:08 字數 3735 閱讀 8775

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]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周

總計**量

671613

1284

定義陣列a[10]=

輸入年份,不同數個數

while(1)

對以年份的4個數字為下標的4個數賦值為1

如果陣列a中大於0的個數與輸入的不同數個數相同

則輸出年份差及當前年份並退出迴圈

年份加一

輸入資料

輸出資料

說明1988 4

25 2013

年份過1000,n為4

1 20 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

如果 有乙個元素不滿足條件

則 輸出no結束程式

end for

for(i=「@」下標+1;i

如果 有乙個元素不滿足條件

則 輸出no結束程式

end for

如果 從「.」往後三個元素如果不滿足「com」或者com後仍有元素

則 輸出no結束程式

若都滿足 輸出yes

輸入資料

輸出資料

說明adf12_@qw_213.com

yes正常位址

[email protected]

nocom後面有字元

[email protected]

no@前出現.

abc@@123.com

no多個@

[email protected]

no多個.

ab [email protected]

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.全部正確。

C語言部落格作業04 陣列

一維陣列 二維陣列 字元陣列 一維陣列 200分 二維陣列 105分 字元陣列 150分 總分 455分 在一大堆資料中找出重複的是一件經常要做的事情。現在,我們要處理許多整數,在這些整數中,可能存在重複的資料。你要寫乙個程式來做這件事情,讀入資料,檢查是否有重複的資料。如果有,輸出 yes 這三個...

C語言部落格作業04 陣列

請以思維導圖總結本週的學習內容。如下圖所示 描述本週學習感受,也可以在這裡提出你不理解地方 對教師教學建議等等。在excel中畫如下 儲存好,複製到部落格隨筆。注意要累計所有 量。貼圖展示。填寫3次題目集的總得分。注意,請把pta 展示給批閱助教,並能完整回答助教問題,才能得滿分。否則根據回答情況給...

C語言部落格作業04 陣列

輸入資料 輸出資料說明4 weizhi 3 資料正常 15not found 資料異常 輸入資料 輸出資料 說明 2 1資料正常 資料正常 1部分正確 測試點有並列極值元素,最後乙個是鞍點不通過,於是將if a i j a i maxindex 改為if a i j a i maxindex 即可通...