C语言二维数组随机替换元素:实战演练

简介本篇博客将带你学习如何使用C语言查找二维数组中的零元素,并随机选择其中一个替换为2。我们将通过一个完整的代码示例来演示整个过程,并提供详细的代码解释,帮助你理解每个步骤的含义。

代码示例c#include <stdio.h>#include <stdlib.h>#include <time.h>

typedef struct { int row; int col;} Position;

int main() { int m, n; printf('请输入数组的行数和列数: '); scanf('%d %d', &m, &n);

int board[m][n];    printf('请输入数组元素:

'); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { scanf('%d', &board[i][j]); } }

Position positions[m * n];    int count = 0;    for (int i = 0; i < m; i++) {        for (int j = 0; j < n; j++) {            if (board[i][j] == 0) {                positions[count].row = i;                positions[count].col = j;                count++;            }        }    }

if (count > 0) {        srand(time(NULL));        int index = rand() % count;        board[positions[index].row][positions[index].col] = 2;    } else {        printf('没有找到零元素,程序退出。

'); return 1; }

printf('修改后的数组为:

'); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { printf('%d ', board[i][j]); } printf(' '); }

return 0;}

代码解释

  1. 包含头文件: * stdio.h: 提供输入输出函数,如 printfscanf。 * stdlib.h: 提供内存分配函数 malloc 和随机数生成函数 randsrand。 * time.h: 提供时间函数 time,用于生成随机数种子。

  2. 定义结构体 Position: 用于存储二维数组中元素的位置信息,包含行号 row 和列号 col

  3. 主函数 main: 程序的入口点。 * 声明变量 mn,用于存储数组的行数和列数。 * 从用户输入获取数组的行数和列数。 * 声明二维数组 board,大小为 m x n,用于存储用户输入的数组元素。 * 使用嵌套循环从用户输入获取数组元素。 * 声明结构体数组 positions,大小为 m * n,用于存储所有零元素的位置信息。 * 声明变量 count,初始化为 0,用于记录零元素的个数。 * 使用嵌套循环遍历数组 board,查找所有零元素,并将它们的位置信息存储到结构体数组 positions 中,同时更新 count 的值。 * 如果 count 大于 0,说明找到了零元素: * 使用 srand(time(NULL)) 初始化随机数生成器。 * 使用 rand() % count 生成一个 0 到 count-1 之间的随机数,并将其赋值给变量 index。 * 将数组 board 中位置为 positions[index] 的元素替换为 2。 * 否则,输出提示信息,表示没有找到零元素,并退出程序。 * 使用嵌套循环输出修改后的数组 board

总结

本篇博客介绍了如何使用C语言查找二维数组中的零元素,并随机选择其中一个替换为2。我们通过一个完整的代码示例和详细的代码解释,帮助你理解了整个过程。希望这篇博客能够帮助你提高C语言编程技能。

C语言二维数组随机替换元素:实战演练

原文地址: https://www.cveoy.top/t/topic/dq8Q 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录