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

C語言入門必做三題:最值下標、二維數組偶行偶列、二分查找

     編輯:關於C語言

C語言入門經典三題:鞏固數組、循環與查找基礎

題目1:5個數求最大/最小值及其下標

#include <stdio.h>
int main() {
    int a[5], i, max_i=0, min_i=0;
    printf("Input 5 numbers: ");
    for (i=0; i<5; i++) scanf("%d", &a[i]);
    for (i=1; i<5; i++) {
        if (a[i] > a[max_i]) max_i = i;
        if (a[i] < a[min_i]) min_i = i;
    }
    printf("Max: a[%d]=%d, Min: a[%d]=%d\n", max_i, a[max_i], min_i, a[min_i]);
    return 0;
}

題目2:4×4矩陣輸出偶行偶列元素 (下標從0開始)

#include <stdio.h>
int main() {
    int a[4][4], i, j;
    printf("Input 16 numbers: ");
    for (i=0; i<4; i++) for (j=0; j<4; j++) scanf("%d", &a[i][j]);
    printf("Even row & col:\n");
    for (i=0; i<4; i+=2)
        for (j=0; j<4; j+=2)
            printf("a[%d][%d]=%d\n", i, j, a[i][j]);
    return 0;
}

題目3:有序數組二分查找

#include <stdio.h>
#define M 10
int binary_search(int arr[], int n, int target) {
    int l=0, r=n-1, mid;
    while (l <= r) {
        mid = l + (r-l)/2;
        if (arr[mid] == target) return mid;
        else if (arr[mid] < target) l = mid+1;
        else r = mid-1;
    }
    return -1;
}
int main() {
    int a[M] = {-1,6,8,10,15,20,21,25,29,55};
    int x; printf("Search: "); scanf("%d", &x);
    int pos = binary_search(a, M, x);
    if (pos >= 0) printf("Found at index %d\n", pos);
    else printf("%d not found\n", x);
    return 0;
}

💡 入門核心要點

  • 下標從0開始:C語言數組下標範圍[0, n-1]。
  • 二分查找前提:數組必須有序。
  • 中間值計算:mid = l + (r-l)/2 防止l+r溢出(雖int範圍內罕見,但屬良好習慣)。
  • 邊界收斂:l <= r 循環條件配合 l=mid+1 / r=mid-1 保證終止。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved