c语言输入一个5*5的方阵,输入一个坐标(行、列,行列值从o开始),求该坐标元素所在行和列共9个元素之和 【输入要求】输入5行,每行5个整数,用空格间隔(5*5的数组);再输入一行两个整数(坐标值) 【输出要求】输出一个整数
时间: 2024-12-18 16:35:35 浏览: 18
要实现这个功能,你可以创建一个5x5的二维数组来存储用户的输入,然后读取用户指定的坐标并计算其所在的行和列共9个元素的和。以下是一个简单的C程序来完成这个任务:
```c
#include <stdio.h>
#define ROWS 5
#define COLS 5
int main() {
// 定义二维数组
int arr[ROWS][COLS];
// 输入5x5的方阵
printf("Enter a 5x5 matrix (space-separated integers):\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
scanf("%d", &arr[i][j]);
}
printf("\n"); // 换行
}
// 输入坐标
int row, col;
printf("Enter the row and column index (starting from 0) of the element you want to sum (separated by space): ");
scanf("%d %d", &row, &col);
// 检查索引是否在范围内
if (row >= 0 && row < ROWS && col >= 0 && col < COLS) {
// 计算九个元素之和(包括中心元素)
int sum = 0;
for (int r = row - 1; r <= row + 1; r++) {
for (int c = col - 1; c <= col + 1; c++) {
if (r >= 0 && r < ROWS && c >= 0 && c < COLS) {
sum += arr[r][c];
}
}
}
// 输出结果
printf("The sum of the 9 elements surrounding the given coordinate is: %d\n", sum);
} else {
printf("Invalid coordinates.\n");
}
return 0;
}
```
阅读全文