首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

查找數組下標:2010 年哈爾濱工業大學計算機研究生機試真題 C 語言解法

     編輯:關於C語言

查找數組下標:2010 年哈爾濱工業大學計算機研究生機試真題 C 語言解法

機試基礎題:給定 n 個互不相同整數,查詢值 x 在數組中的下標(0 基),不存在輸出 -1。考察數組遍歷、標記變量技巧、多組輸入處理。

一、題目描述

  • 輸入:多組數據。每組先讀 n (1 ≤ n ≤ 200),再讀 n 個整數,最後讀查詢值 x。
  • 輸出:每組輸出 x 的下標,不存在輸出 -1。

二、樣例

輸入:
2
1 3
0
輸出:
-1

三、AC 代碼

#include 

int main() {
    int n, array[200];
    while (scanf("%d", &n) != EOF) {
        for (int i = 0; i < n; i++) scanf("%d", &array[i]);
        int x; scanf("%d", &x);
        int found = 0;
        for (int i = 0; i < n; i++) {
            if (array[i] == x) {
                printf("%d\n", i);
                found = 1;
                break; // 題目說數值各不相同,找到即可退出
            }
        }
        if (!found) printf("-1\n");
    }
    return 0;
}

四、關鍵點解析

  1. 多組輸入:while (scanf("%d", &n) != EOF)。
  2. 標記變量:found 記錄是否找到,避免重複輸出或漏輸出 -1。
  3. 提前退出:數值唯一,找到即 break,微優化。
  4. 數組大小:n ≤ 200,靜態分配 array[200] 足夠。

五、算法複雜度

  • 時間:O(n) 每測試用例,n ≤ 200 極快。
  • 空間:O(1) 額外空間。

六、總結

基礎線性查找題,核心考察輸入循環、數組操作、標記變量邏輯。適合初學者練習機試輸入輸出模式與基本控制流。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved