这段代码的功能是输入一个二维数组 arr
,然后对数组中的元素进行处理并输出。
#include<iostream>
#include<cmath>
#include <iomanip>
using namespace std;
int main() {
int n,m; // 定义变量n和m,表示数组的行数和列数
cin>>n>>m; // 输入数组的行数和列数
double arr[n][m]; // 定义二维数组arr,用来存储数据(数据类型为double)
for(int i=0;i<n;i++){ // 循环读取数据到arr数组中
for(int j=0;j<m;j++){
cin>>arr[i][j];
}
}
for(int i=0;i<n;i++){ // 处理arr数组的元素并输出
for(int j=0;j<m;j++){
if(i==0 or j==0 or i==n-1 or j==m-1 ){ // 如果元素位于边界上,则直接输出该元素
cout<<arr[i][j]<<" ";
}else{ // 否则,根据要求计算平均值并输出(使用round函数对结果进行四舍五入)
cout<<round((arr[i][j]+arr[i-1][j]+arr[i+1][j]+arr[i][j-1]+arr[i][j+1])/5)<<" ";
}
}
cout<<endl; // 每行输出完后换行
}
return 0;
}
首先,通过 cin
输入两个整数 n
和 m
,表示二维数组的行数和列数。
然后,定义一个二维数组 arr
,大小为 n
行 m
列,用来存储数据。
接下来,使用嵌套的 for
循环,依次读取用户输入的数据到数组 arr
中。
然后,再次使用嵌套的 for
循环。外层循环控制行数,内层循环控制列数。在每一个元素上,进行以下判断:
- 如果元素位于数组的边界(即第一行、最后一行、第一列或最后一列),则直接输出该元素。
- 否则,根据要求计算该元素与上下左右四个元素的平均值,并输出平均值。
最后,在内层循环结束后,输出换行符 endl
,以确保每行的输出结果在不同行显示。
整个代码的作用是对二维数组 arr
中的元素进行处理并输出。边界上的元素直接输出,非边界上的元素根据要求计算平均值后输出。每行的元素之间用空格分隔,每行输出完后换行。