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

C語言函數實現:求區間內能被 7 或 11 整除但不能同時被整除的數

     編輯:程式設計疑難解答

題目要求

編寫函數 `fun(int a, int b, int arr[])`,找出 `[a, b]` 範圍內滿足:
`(i % 7 == 0 || i % 11 == 0) && (i % 77 != 0)` 的正整數,存入數組並返回個數。
主函數輸入 a, b,調用並打印結果。

參考代碼

#include <stdio.h>
#include <stdlib.h>

int fun(int a, int b, int arr[]) {
    int n = 0;
    for (int i = (a > 0 ? a : 1); i <= b; i++) {
        if ((i % 7 == 0 || i % 11 == 0) && (i % 77 != 0)) {
            arr[n++] = i;
        }
    }
    return n;
}

int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    int *arr = (int *)malloc(sizeof(int) * (b - a + 2)); // 足夠大
    int count = fun(a, b, arr);
    for (int i = 0; i < count; i++) {
        printf("%d ", arr[i]);
    }
    free(arr);
    return 0;
}

樣例驗證

  • 輸入 `1 20` → 輸出 `7 11 14`
  • 輸入 `50 100` → 輸出 `55 56 63 66 70 84 88 91 98 99`

注意

  • 題目保證 `1 <= a <= b < 1000`,數組大小 `b-a+1` 足夠。
  • 條件 `i % 77 != 0` 排除同時被 7 和 11 整除的數(即 77 的倍數)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved