C语言中二维数组初始化怎么做
时间: 2024-10-23 09:06:55 浏览: 32
在C语言中,二维数组是一种数组的数组,它由若干行元素组成,每行元素又是一个一维数组。初始化二维数组有几种常见的方法:
1. **静态分配**:
```c
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
```
这里直接在花括号内列出每个元素。
2. **动态分配**(如果需要更大的数组大小或不确定大小):
```c
#include <stdlib.h>
int (*arr)[4] = malloc(3 * sizeof(int[4])); // 分配3行
if (arr) {
arr[0] = [1, 2, 3, 4];
arr[1] = [5, 6, 7, 8];
arr[2] = [9, 10, 11, 12];
// 使用完记得free(arr)
}
```
这里的`malloc`用于动态内存管理。
3. **零填充**:
```c
int arr[3][4] = {
{0, 0, 0, 0},
{1, 2, 3, 4},
{5, 6, 7, 8}
};
```
这样可以预先设置数组的一部分为默认值。
相关问题
c语言中用二维数组做函数
在 C 语言中,我们可以使用二维数组来传递数据给函数。下面是一个简单的示例:
```c
#include <stdio.h>
void printArray(int arr[][3], int rows) {
int i, j;
for (i = 0; i < rows; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main() {
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
printArray(arr, 2);
return 0;
}
```
在上面的示例中,我们定义了一个二维数组 `arr`,并将其作为参数传递给 `printArray` 函数。`printArray` 函数接受一个二维数组和一个整数参数 `rows`,其中 `rows` 表示数组的行数。函数内部使用两个嵌套的循环来遍历二维数组中的所有元素,并打印它们的值。
在主函数中,我们初始化了一个二维数组 `arr`,并将其作为参数传递给 `printArray` 函数。函数将遍历并打印数组中的所有元素。
需要注意的是,当我们传递二维数组给函数时,需要指定数组的第二维大小,而第一维的大小可以省略。例如,上面的示例中,我们传递了一个 `int arr[][3]` 类型的数组参数,其中第一维的大小被省略了。
C语言用二维数组做电影院选票
在C语言中,我们可以使用二维数组来模拟电影院的选票系统。假设我们有不同类型的座位(如普通座、VIP座等),每个座位都有一个投票选项,比如喜欢的电影类型或演员。下面是一个简单的例子:
```c
#include <stdio.h>
#define ROWS 5 // 座位行数
#define COLS 3 // 每行座位数
// 定义选票结构体
typedef struct {
char seat_type[10]; // 座位类型
int vote; // 投票选项,例如1表示喜欢A导演,2表示喜欢B电影
} Ticket;
// 初始化二维数组
Ticket movie_votes[ROWS][COLS];
// 转换函数,将用户输入映射到二维数组
void enterVote(int row, int col, char director[]) {
strcpy(movie_votes[row][col].seat_type, "普通座"); // 假设默认是普通座
scanf("请输入对%d号位置的投票选择(1-%s):", col + 1, director); // 用户输入投票编号和对应的选项
}
int main() {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
enterVote(i, j, "导演");
printf("\n");
}
printf("\n---\n");
}
// 输出投票结果,这里只是一个示例,实际应用会需要分析和统计
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%s 的投票选择: %d\n", movie_votes[i][j].seat_type, movie_votes[i][j].vote);
}
}
return 0;
}
阅读全文