C语言程序,计算二维数组的和以及周边元素的平均值?

语言程序,计算二维数组的和以及周边元素的平均值

#include <stdio.h>
#define ROW 5
#define COL 5
int main()
{
int array[ROW][COL];
int i, j, sum = 0, count = 0;
float average = 0.0;
// 初始化二维数组
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
array[i][j] = i + j;
}
}
// 计算二维数组的和
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
sum += array[i][j];
}
}
// 计算周围元素的平均值
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
if (i > 0 && j > 0 && i < ROW - 1 && j < COL - 1)
{
count++;
average += (array[i-1][j-1] + array[i-1][j] + array[i-1][j+1] + array[i][j-1] + array[i][j+1] + array[i+1][j-1] + array[i+1][j] + array[i+1][j+1]) / 8.0;
}
}
}
// 打印结果
printf("The sum of the array is %d\n", sum);
printf("The average of the surrounding elements is %.2f\n", average / count);
return 0;
}
该代码使用两个嵌套循环遍历整个二维数组,第一个循环用于计算数组的和,第二个循环用于计算周围元素的平均值。除了数组的边界元素外,所有元素的周围元素都将被计算入平均值。
请注意,代码中使用了 ROW 和 COL 宏定义,这些定义用于指定数组的行数和列数,因此,如果您希望使用其他数组大小,只需修改这些定义即可。
最后,代码使用 printf 函数打印结果,并使用了格式字符串(.2f)以保留两位小数。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-02-07
#include <stdio.h>
#define ROWS 3
#define COLS 3
int main() {
int arr[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int i, j;
int sum = 0;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
sum += arr[i][j];
}
}
printf("The sum of all elements in the array is: %d\n", sum);
printf("The average value of the elements surrounding each element is:\n");
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
int count = 0;
int average = 0;
if (i > 0) {
average += arr[i - 1][j];
count++;
}
if (i < ROWS - 1) {
average += arr[i + 1][j];
count++;
}
if (j > 0) {
average += arr[i][j - 1];
count++;
}
if (j < COLS - 1) {
average += arr[i][j + 1];
count++;
}
printf("%d ", average / count);
}
printf("\n");
}
return 0;
}
相似回答