You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言如何实现打印数组中排除含数字5的所有元素?

解决方法

判断逻辑说明

要过滤包含数字5的元素,核心逻辑是逐位检测数字的每一位是否等于5:

  1. 对目标数字取模10,得到当前个位的数值,判断是否为5
  2. 若当前位是5,直接判定该数字需要被过滤
  3. 若当前位不是5,将数字除以10去掉已检测的个位,重复上述步骤
  4. 直到数字被除为0时,说明所有位都不含5,可以打印

代码实现

首先在main函数外新增一个检测函数:

// 返回值为1说明数字包含5,返回值为0说明不包含5
int hasFive(int num) {
    // 兼容负数场景,你当前用的都是正整数可删除该行
    num = num < 0 ? -num : num;
    while (num > 0) {
        if (num % 10 == 5) {
            return 1;
        }
        num /= 10;
    }
    return 0;
}

之后在你现有代码的末尾,追加打印不含5元素的逻辑即可:

// 打印降序排列、不含数字5的所有元素
printf("以下为降序排列的不含数字5的所有元素:\n");
for(int m = 19; m >= 0; m--) {
    if (!hasFive(array[m])) {
        printf("%i\n", array[m]);
    }
}

如果你不想单独封装函数,也可以把判断逻辑直接写到循环里:

printf("以下为降序排列的不含数字5的所有元素:\n");
for(int m = 19; m >= 0; m--) {
    int temp = array[m];
    int has5 = 0;
    while (temp > 0) {
        if (temp %10 ==5) {
            has5 = 1;
            break;
        }
        temp /=10;
    }
    if (!has5) {
        printf("%i\n", array[m]);
    }
}

内容的提问来源于stack exchange,提问作者Abdullah Mushtaq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:45:03