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

如何修改C语言代码使rand生成的2-100区间4×3数组仅含偶数

解决方案

你只需要修改数组元素赋值的那一行代码即可,推荐使用**生成150随机数后乘以2**的方案,无需额外判断,就能直接得到2100范围内的所有偶数:

  • 原赋值代码:matriz[i][j] = rand() % 99 + 2;
  • 修改后的赋值代码:matriz[i][j] = (rand() % 50 + 1) * 2;

修改后的完整代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define LINES 4
#define COLUMNS 3

int main(void) {
  int matriz[LINES][COLUMNS];
  int i, j;
  srand(time(NULL));
  for(i = 0; i < LINES; i++){
    for(j = 0; j < COLUMNS; j++){
        // 生成2~100的偶数:1~50随机数乘以2
        matriz[i][j] = (rand() % 50 + 1) * 2;
    }
  }
  printf("Matriz[%i][%i]:\n", LINES, COLUMNS);
  for(i = 0; i < LINES; i++){
    for(j = 0; j < COLUMNS; j++){
      printf("	%i", matriz[i][j]);
    }
    printf("\n");
  }
  return 0;
}

原理解释

rand() % 50 得到的是049的随机整数,加1后范围变成150,乘以2之后自然就得到2、4、6...100的所有偶数,刚好符合原代码的取值范围要求,执行效率比生成后筛选的方案更高。

内容的提问来源于stack exchange,提问作者João Gabriel Moreira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:45:06