- 示例學習 C 語言
- 示例學習 C 語言 - 主頁
- C 語言示例 - 簡單程式
- C 語言示例 - 迴圈/迭代
- C 語言示例 - 模式
- C 語言示例 - 陣列
- C 語言示例 - 字串
- C 語言示例 - 數學
- C 語言示例 - 連結串列
- C 語言程式設計實用資源
- 示例學習 C 語言 - 快速指南
- 示例學習 C 語言 - 資源
- 示例學習 C 語言 - 討論
查詢 C 陣列中的第二大元素
查詢陣列中的第二大值是經典的 C 語言陣列程式。該程式使你深入瞭解迭代、陣列和條件運算子。我們迭代地檢查每個元素,以確定最大和第二大元素。
演算法
首先,我們來看看該程式的分步過程 -
START Step 1 → Take an array A and define its values Step 2 → Declare largest and second as integer Step 3 → Assign first two values of array A to largest and second Step 4 → Assign the large value to largest and second largest to second Step 5 → Iterate for Array A Step 6 → If A[n] > largest, Assign largest.value to second and Assign A[n] to largest Step 7 → Else If A[n] > second, Assign A[n] to second Step 8 → Loop Terminates Step 9 → Display largest and second STOP
虛擬碼
現在,我們來看看該演算法的虛擬碼 -
procedure largest_array(A)
Declare largest and second as integer
IF A[0] is greater than A[1] THEN
largest ← A[0]
second ← A[1]
ELSE
largest ← A[1]
second ← A[0]
ENDIF
FOR EACH value in A DO
IF A[n] is greater than largest THEN
second ← largest
largest ← A[n]
ELSE IF second is less than A[n] THEN
second ← A[n]
END IF
END FOR
Display largest and second
end procedure
實現
現在,可以在 C 語言程式中實現該虛擬碼,如下所示 -
#include <stdio.h>
int main() {
int array[10] = {101, 11, 3, 4, 50, 69, 7, 8, 9, 0};
int loop, largest, second;
if(array[0] > array[1]) {
largest = array[0];
second = array[1];
} else {
largest = array[1];
second = array[0];
}
for(loop = 2; loop < 10; loop++) {
if( largest < array[loop] ) {
second = largest;
largest = array[loop];
} else if( second < array[loop] ) {
second = array[loop];
}
}
printf("Largest - %d \nSecond - %d \n", largest, second);
return 0;
}
輸出應該如下所示 -
Largest - 101 Second - 69
array_examples_in_c.htm
廣告