利用c语言,建立3×3二维数组,并利用while循环语句和scanf语句,为二维数组内的元素用键盘逐个赋值,并在屏幕上以矩阵的形式显示赋值后的二维数组
时间: 2024-11-22 14:39:06 浏览: 47
计算二维数组周边元素之和
在C语言中,你可以通过定义一个动态分配的二维数组,并结合`while`循环和`scanf`函数来实现这个功能。首先,你需要声明一个3x3的整型二维数组,并初始化为0(如果需要),然后通过循环结构获取用户输入并赋值给数组。最后,遍历数组并打印出来展示为矩阵形式。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define ROWS 3
#define COLS 3
int main() {
// 动态分配二维数组
int arr[ROWS][COLS];
// 初始化所有元素为0
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
arr[i][j] = 0;
}
}
// 使用while循环从用户获取输入并赋值
int row, col;
while (true) {
printf("Enter row index (0-%d): ", ROWS - 1);
if (scanf("%d", &row) != 1 || row < 0 || row >= ROWS) {
printf("Invalid input! Please try again.\n");
continue;
}
scanf("%d", &col); // 不用检查列索引,因为范围已知
// 检查是否超出数组边界
if (col < 0 || col >= COLS) {
printf("Column out of range! Ignoring this value.\n");
continue;
}
printf("Enter a number for element at [%d][%d]: ", row, col);
if (scanf("%d", &arr[row][col]) != 1) {
printf("Invalid input! Skipping...\n");
} else {
break; // 如果输入有效,跳出循环
}
}
// 打印矩阵
printf("\nMatrix after assignment:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%4d", arr[i][j]); // 四个空格对齐每个元素
}
printf("\n");
}
return 0;
}
```
阅读全文