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

C語言練習:查找 1-100 能被 7 或 11 整除的數並格式化輸出

     編輯:C 語言問答

題目要求

  • 範圍:1 ~ 100
  • 條件:能被 7 整除 或 能被 11 整除
  • 存儲:放入數組 a[]
  • 統計:計算滿足條件的個數
  • 輸出:每行 5 個數據,格式化顯示

算法思路

  1. 遍歷 i = 1..100,判斷 (i % 7 == 0) || (i % 11 == 0)。
  2. 滿足則存入 a[count++] = i。
  3. 遍歷數組輸出,每 5 個換行:if (idx % 5 == 0 && idx != 0) putchar('\n');。

完整代碼

#include <stdio.h>

int main() {
    int a[100];   // 足夠大,最多 100 個
    int count = 0;

    // 1. 篩選並存儲
    for (int i = 1; i <= 100; i++) {
        if (i % 7 == 0 || i % 11 == 0) {
            a[count++] = i;
        }
    }

    // 2. 格式化輸出
    printf("1-100 中能被 7 或 11 整除的數 (共 %d 個):\n", count);
    for (int i = 0; i < count; i++) {
        printf("%4d", a[i]);          // 寬度 4 對齊
        if ((i + 1) % 5 == 0) putchar('\n'); // 每 5 個換行
    }
    if (count % 5 != 0) putchar('\n'); // 最後補換行

    return 0;
}

運行結果

1-100 中能被 7 或 11 整除的數 (共 22 個):
   7   11   14   21   22
  28   33   35   42   44
  49   55   56   63   66
  70   77   84   88   91
  98   99

知識點鞏固

  • 邏輯或 ||:i%7==0 || i%11==0,任一為真即滿足。
  • 數組作動態容器:配合 count 變量模擬動態數組。
  • 格式化輸出控制:%4d 固定寬度,(i+1)%5==0 控制換行。
  • 邊界處理:輸出迴圈結束後補換行,避免提示符連在數字後。
  • 考點代碼體現

    擴展練習

    • 修改為「能被 7 和 11 同時整除」(最小公倍數 77)。
    • 改用動態內存 malloc/realloc 存儲,突破 100 上限。
    • 將篩選邏輯封裝為函數 int filter(int *arr, int max, int div1, int div2)。

    總結

    本題綜合考察「條件判斷、數組操作、循環控制、格式化輸出」四大基礎技能。掌握「計數器同步寫入數組」與「模運算控制換行」兩個編程慣用模式,能靈活應對各類篩選輸出問題。

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