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

开发数组元素迁移程序:按指定除数筛选迁移元素

我来帮你搞定这个数组元素迁移的程序,下面是完整的C语言实现,包含详细注释和逻辑说明:

数组元素迁移程序完整实现
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// 迁移能被指定除数整除的元素到目标数组
int moveDivisibleElements(int source[], int target[], int length, int divisor) {
    int count = 0; // 记录目标数组中存入的元素个数
    for (int i = 0; i < length; i++) {
        // 判断当前元素是否能被除数整除(除数不为0的前提已在主函数处理)
        if (source[i] % divisor == 0) {
            target[count++] = source[i];
        }
    }
    return count;
}

int main() {
    int divisor;
    // 初始化随机数种子,确保每次运行生成不同的随机数序列
    srand((unsigned int)time(NULL));
    
    // 创建两个长度为30的一维整数数组
    int arr1[30], arr2[30];
    
    // 填充第一个数组为0-99的随机数并打印
    printf("第一个数组(0-99随机数)内容:\n");
    for (int i = 0; i < 30; i++) {
        arr1[i] = rand() % 100;
        printf("%d ", arr1[i]);
        // 每10个元素换行,提升可读性
        if ((i + 1) % 10 == 0) {
            printf("\n");
        }
    }
    printf("\n");
    
    // 让用户输入整数除数,同时处理除数为0的异常情况
    do {
        printf("请输入一个非零整数除数:");
        scanf("%d", &divisor);
        if (divisor == 0) {
            printf("错误:除数不能为0,请重新输入!\n");
        }
    } while (divisor == 0);
    
    // 调用函数迁移符合条件的元素
    int validCount = moveDivisibleElements(arr1, arr2, 30, divisor);
    
    // 打印第二个数组的内容
    printf("\n第二个数组(能被%d整除的元素)内容:\n", divisor);
    if (validCount == 0) {
        printf("没有能被%d整除的元素\n", divisor);
    } else {
        for (int i = 0; i < validCount; i++) {
            printf("%d ", arr2[i]);
            if ((i + 1) % 10 == 0) {
                printf("\n");
            }
        }
        printf("\n");
    }
    
    return 0;
}

关键逻辑说明

  • 随机数生成:用srand((unsigned int)time(NULL))初始化随机数种子,避免每次运行得到相同的随机数序列;rand() % 100生成0到99之间的整数。
  • 除数输入校验:通过do-while循环强制用户输入非零除数,避免出现除以0的运行时错误。
  • 元素迁移函数:moveDivisibleElements函数负责遍历源数组,将符合条件的元素存入目标数组,并返回实际存入的元素数量,这样打印目标数组时只会输出有效元素,不会打印未初始化的垃圾值。
  • 格式化打印:每10个元素换行,让输出布局更清晰易读。

内容的提问来源于stack exchange,提问作者Στέφανος Γκορτσόπουλος

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 09:32:54