阿摩線上測驗 登入

申論題資訊

試卷:105年 - 105年身障特考四等程式設計概要#50187
科目:程式設計
年份:105年
排序:0

題組內容

三、C 語言函式原型 int search(int A[], int n, int x); 
 的第一個參數為整數陣列 A[] 第二個參數為整數 n 代表搜尋範圍為索引從 0 到 n - 1 , 。 若存在一個不為負而且小於 n 的整數 i,滿足 A[i]等於第三個參數整數 x,則函式回 傳值為 i,否則函式回傳值等於-1。假如有多個 i 值滿足條件,則函式回傳值為最大 的 i。 (每小題 20 分,共 40 分)

申論題內容

⑵請以疊代的(iterative)循序搜尋(sequential search)法撰寫這個函式。

詳解 (共 4 筆)

詳解 提供者:hchungw
使用疊代(iterative)方法來實現循序搜尋的函式,可以直接通過一個循環來遍歷陣列中的所有元素,從而尋找目標值x。如果存在多個符合條件的索引i,根據題目要求,我們應該返回最大的i值。如果沒有找到,則返回-1。
這裡是以C語言編寫的函式示例:
c
Copy code
#include <stdio.h>
// 函式原型
int search(int A[], int n, int x);
int main() {
    int A[] = {1, 2, 3, 4, 5, 3, 2};
    int n = sizeof(A) / sizeof(A[0]);
    int x = 3;
    
    // 呼叫 search 函式並打印結果
    int result = search(A, n, x);
    if (result != -1) {
        printf("Element %d found at index %d.\n", x, result);
    } else {
        printf("Element %d not found in the array.\n", x);
    }
    
    return 0;
}
// 循序搜尋函式的實現
int search(int A[], int n, int x) {
    int index = -1; // 用於記錄符合條件的最大索引
    for (int i = 0; i < n; i++) {
        if (A[i] == x) {
            index = i; // 更新符合條件的索引
        }
    }
    return index; // 返回最終結果,如果未找到則為 -1
}
在這個函式中,我們使用一個for循環來遍歷陣列A[]的所有元素。每當發現一個元素的值等於目標值x時,我們更新變量index的值為當前的索引i。由於循環是從陣列的開始到結束進行的,最後一次更新的index值將會是符合條件的最大索引,正好符合題目的要求。如果循環結束後index仍為初始值-1,則表示陣列中不存在目標值,函式最後返回index的值。
詳解 提供者:Zhe Zhen Hong

int search(int A[],int m,int x) { int i; for(i=0:i

詳解 提供者:ddd7788989
int search(int *A, int n, int x) { for(int i ==0; i < n; i++) { if(x == A[i]) { return(i); } return (-1); } }
詳解 提供者:Triple w.
 
我們需要撰寫一個函式來進行循序搜尋(sequential search)。循序搜尋是一種基礎的搜尋演算法,用來查找一個特定的元素是否存在於一個資料集中。這個演算法會從資料集的第一個元素開始,依序檢查每個元素,直到找到目標元素或檢查完所有元素為止。
 
66fd4f87efc58.jpg