C语言如何输出一个二维数组的行数和列数
时间: 2024-05-29 11:10:03 浏览: 12
可以使用sizeof操作符来获取数组的大小,然后通过除以一维或二维的大小来得到行数和列数。
例如,对于一个二维数组arr,可以使用以下代码获取行数和列数:
int rows = sizeof(arr) / sizeof(arr[0]);
int cols = sizeof(arr[0]) / sizeof(arr[0][0]);
其中,sizeof(arr)表示整个数组的大小,sizeof(arr[0])表示第一行的大小,sizeof(arr[0][0])表示一个元素的大小。因此,将整个数组的大小除以一行的大小可以得到行数,将一行的大小除以一个元素的大小可以得到列数。
相关问题
C语言如何实现将指针传参传入的二维数组输出行数和列数
可以使用以下方法实现将指针传参传入的二维数组输出行数和列数:
```c
#include <stdio.h>
void printArray(int (*arr)[], int rows, int cols) {
printf("Number of rows: %d\n", rows);
printf("Number of columns: %d\n", cols);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", *((arr+i*cols)+j));
}
printf("\n");
}
}
int main() {
int arr[][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
int rows = sizeof(arr) / sizeof(arr[0]);
int cols = sizeof(arr[0]) / sizeof(int);
printArray(arr, rows, cols);
return 0;
}
```
在上面的代码中,我们定义了一个名为`printArray`的函数,该函数接收一个指向二维数组的指针,以及该数组的行数和列数作为参数。在函数内部,我们首先输出行数和列数,然后使用两个嵌套循环遍历整个数组,并将每个元素打印到控制台上。
在主函数中,我们声明了一个二维数组`arr`,并使用`sizeof`运算符计算出了行数和列数。然后,我们调用`printArray`函数,将数组指针、行数和列数作为参数传递给该函数。最后,我们输出了整个数组。
用C语言编写代码要求输入一个二维数组,实现自动遍历这个二维数组,得出这个二维数组的行数和列数,
以下是用C语言编写的实现:
```c
#include <stdio.h>
int main() {
int arr[100][100], rows, cols;
printf("请输入二维数组的行数和列数:\n");
scanf("%d %d", &rows, &cols);
printf("请输入二维数组:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
scanf("%d", &arr[i][j]);
}
}
printf("二维数组为:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
printf("二维数组的行数为:%d\n", rows);
printf("二维数组的列数为:%d\n", cols);
return 0;
}
```
解释一下代码:
1. 声明一个二维数组 `arr`,以及变量 `rows` 和 `cols`,分别表示二维数组的行数和列数。
2. 通过 `scanf` 函数输入二维数组的行数和列数,注意要加上取地址符 `&`。
3. 通过两重循环输入二维数组的每个元素。
4. 通过两重循环输出二维数组的每个元素。
5. 输出二维数组的行数和列数。