C語言部落格作業04 陣列

2022-05-30 12:51:09 字數 3175 閱讀 3289

重頭到尾遍歷陣列,直到找到需要的資料。

優點:操作簡單。

缺點:效率低,當陣列很大時十分耗時。

每次查詢都可以縮短一半的查詢範圍,效率高。

缺點:只適用於有序排列的陣列。

首先找到該數要插入的位置,再將這個位置後的所有數的位置向後移一位,最後將這個數插入。

找到要刪除的資料的位置,從它開始,將後面的資料向前覆蓋,實現陣列資料的刪除。

定義乙個新陣列,將不刪除的資料放入新陣列。

思路:將陣列中每個元素與第乙個元素比較,如果這個元素小於第乙個元素, 則交換這兩個元素。迴圈查詢,每次找出最小元素,放於第 1 個位置,經過 n-1 輪比較完成排序

思路:比較相鄰的元素,將小(大)的放到前面。

不懂。

#include#define n 100001

int check(int n);

int main()

else

return 0;

}int check(int n)

else

}return 0;

}

#include int main()

; int i, j, max = 0, k;

scanf("%d", &n);

for (i = 0; i < n; i++)

scanf("%d", &a[i]);

for (i = 0; i < n; i++)

for (j = 0; j < n; j++)

for (i = 0; i < n; i++)

} printf("%d %d\n", a[k], max);

return 0;

}

對於一維陣列和二維陣列的學習有些明白,但是對於字元陣列實在是懵。還有對於一些題目,雖然做出來了,但是**非常多,應該能找到更簡潔的方法去寫。

#include#define n 201

int main()

輸出字串

return 0;

}

#include#define n 201

int main()

s[i] = '\0';

for (i = 0; s[i] != '\0'; i++)

for (i = 0; i < 200; i++) }

return 0;

}

輸入資料

輸出資料

說明全空格

乙個空格

全空格==--ccbbaa;;''

'-;=abc

有其他字元

部分正確:只考慮了字母和數字的情況,沒有考慮其他字元的輸入與重複。也沒有考慮全空格的情況。

char a[n];//大數a

char b[n];//大數b

int n=1,m=1,i,j,k;//迴圈變數

int x, y;

int z;

a[0] = '0';//考慮進製

b[0] = '0';;//考慮進製

#include#include#define m 1002

#define n 1003

int main()

a[n] = '\0';

while ((b[m] = getchar()) != '\n')

b[m] = '\0';

j = n-1;

i = m - 1;

if (n>=m)

else break;}}

else a[j] = (x + y) + '0';

j--;

} if (a[0] != '0')

else

}} else

else break;}}

else b[i] = (x + y) + '0';

i--;

} if (b[0] != '0')

else

} }

return 0;

}

輸入資料

輸出資料

說明99、1

100檢驗是否進製

1、99

100a的位數小於b

答案錯誤:沒有考慮a的位數比b來得少。

int static hash[100001];//定義乙個雜湊陣列來表示資料是否出現過
#include#define n 100001

int check(int n);

int main()

else

return 0;

}int check(int n)

else

}return 0;

}

輸入資料

輸出資料

說明1 2 3 4 5 1

yes最後乙個有重複

部分正確:使用逐一查詢的方法來判斷是否有重複資料,浪費了時間,還導致了段錯誤。改用以空間換時間的方法來重寫**。

#includeint main(void)

} else if (direction == 1)

}else if (direction == 2)

}else if (direction == 3)

}} for (int i = 0; i < n; i++)

printf("\n");

}}

這個螺旋方針題目的解法令我眼前一亮,它用生動形象的注釋,將乙個複雜的問題形象化、簡單化,我想,自己寫**是否也能像這樣子靈動。同時它也讓我知道了**並不一定是枯燥的

,它只要加上一點注釋,就可以變得很優美。

C語言部落格作業04 陣列

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

C語言部落格作業04 陣列

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

C語言部落格作業04 陣列

while 上限 下限 中間值 上限 下限 2 如果 中間值等於所查詢的數 找到資料,退出迴圈 如果 數 中間值 下限 中間值的前一位 否則 上限 中間值後一位 end while 輸入資料 for 遍歷陣列 如果 找到所插入數的位置 該位置往後資料右移一位,該位置賦值為插入的數 end for 輸...