c 语言二维数组初始化赋值
时间: 2023-10-25 10:15:08 浏览: 212
C言二维数组初始化赋值可以有以下几种方式:
1. 直接初始化
```c
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
```
2. 动态初始化
```c
int arr[3][4];
for(int i=0; i<3; i++){
for(int j=0; j<4; j++){
arr[i][j] = i*4+j+1;
}
}
```
3. 部分初始化
```c
int arr[3][4] = {
{1, 2},
{5, 6, 7},
{9}
};
```
上述代码中,第一行元素为1和2,第二行元素为5、6、7,第三行元素为9。未赋值的元素自动初始化为0。
相关问题
c 语言二维数组赋值随机数
在C语言中,你可以使用`srand()`函数设置随机数种子,然后通过`rand()`函数生成随机数,来给二维数组赋值。这里是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h> // 包含rand和srand函数
#define ROWS 3
#define COLS 4
void initialize_random_2d_array(int arr[][COLS]) {
int i, j;
srand(time(0)); // 设置随机数种子,使用当前时间增加多样性
for (i = 0; i < ROWS; i++) { // 遍历行
for (j = 0; j < COLS; j++) { // 遍历列
arr[i][j] = rand() % 100; // 生成0到99之间的随机数
}
}
}
int main() {
int my_2d_arr[ROWS][COLS];
initialize_random_2d_array(my_2d_arr);
// 打印二维数组
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%d ", my_2d_arr[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序会初始化一个3x4的二维数组,每个元素都是0到99之间的随机整数。
C语言二维数组初始化赋值
在C语言中,二维数组是一种存储多个一维数组的结构,它的每个元素都是一个包含多个元素的一维子数组。初始化二维数组的方式有多种:
1. **直接分配内存并手动填充**:
```c
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
```
这里创建了一个3行4列的二维数组,并分别给每个子数组初始化了值。
2. **使用循环**:
```c
#define ROWS 3
#define COLS 4
int arr[ROWS][COLS];
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
arr[i][j] = i * COLS + j;
}
}
```
通过嵌套循环,可以生成一个对角线初始化的效果。
3. **使用memset函数**:
```c
#include <string.h>
int arr[3][4];
memset(arr, 0, sizeof(arr)); // 初始化所有元素为0
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
arr[i][j] = i * COLS + j;
}
}
```
先用memset将整个数组置零,然后逐个元素赋值。
阅读全文