C语言二维数组输入数据
时间: 2025-06-26 16:01:56 浏览: 12
### C语言中二维数组输入数据的方法
在C语言中,可以通过多种方式实现二维数组的数据输入操作。以下是几种常见的方法及其对应的代码示例。
#### 方法一:通过嵌套循环逐个读取元素
可以利用`scanf()`函数配合嵌套的`for`循环来逐一获取用户输入并赋值给二维数组中的每一个位置[^1]。
```c
#include <stdio.h>
int main() {
int rows, cols;
printf("请输入二维数组的行数和列数: ");
scanf("%d %d", &rows, &cols);
int array[rows][cols];
printf("请输入%d行%d列的数值:\n", rows, cols);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
scanf("%d", &array[i][j]);
}
}
// 打印验证输入结果
printf("\n您输入的二维数组如下所示:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", array[i][j]);
}
printf("\n");
}
return 0;
}
```
此方法简单直观,适用于任何大小的二维数组,并能灵活调整行列数量。
---
#### 方法二:使用指针访问二维数组
除了传统的索引访问外,还可以借助指针变量间接存取二维数组的内容[^4]。这种方式对于某些特定场景可能更加高效或者方便。
```c
#include <stdio.h>
int main() {
int rows = 3, cols = 4;
int array[rows][cols];
int (*p)[cols]; // 定义一个指向整型数组(每行为固定长度col的一维数组)的指针
p = array;
printf("请输入%d行%d列的数值:\n", rows, cols);
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
scanf("%d", (*(p + i) + j)); // 使用指针形式访问第(i,j)个元素
}
}
// 验证输出
printf("\n您输入的二维数组如下所示:\n");
for (int i = 0; i < rows; ++i){
for (int j = 0; j < cols; ++j){
printf("%d ", *( *(p+i)+j ));
}
printf("\n");
}
return 0;
}
```
这种方法展示了如何运用指针技巧简化程序逻辑的同时保持功能不变。
---
#### 方法三:动态分配内存后的输入
如果事先不知道具体尺寸,则可采用动态分配的方式创建二维数组后再完成相应操作[^2]。
```c
#include <stdio.h>
#include <stdlib.h>
int main(){
int row,col,i,j,**matrix;
printf("请输入矩阵的行数与列数:");
scanf("%d %d",&row,&col);
matrix=(int**)malloc(row * sizeof(int*));
if(!matrix){printf("Memory allocation failed!");exit(-1);}
for(i=0;i<row;i++){
*(matrix+i)=(int*)malloc(col * sizeof(int));
if(*(matrix+i)==NULL){printf("Subsequent memory allocations failed!"); exit(-1);}
}
printf("现在请依次输入各元素值\n");
for(i=0;i<row;i++)
for(j=0;j<col;j++)
scanf("%d",(*(*(matrix+i))+j));
/* 输出 */
puts("");
for(i=0;i<row;i++,puts(""))
for(j=0;j<col;j++)
printf("%d\t",*(*(matrix+i)+j));
free(matrix); // 记得释放资源!
return 0 ;
}
```
上述例子说明了当面对不确定规模需求时的一种解决方案。
---
### 总结
以上介绍了三种不同的策略用于解决C语言环境下二维数组的数据录入问题。无论是静态声明还是动态构建都可以满足实际开发过程中的不同情况下的应用需求。
阅读全文
相关推荐
















