C语言代码 某班有 � 2 n 2 名同学,他们的座位有 � n 排,每排 � n 个人,每个人的勤奋值为 � � , � a i,j 。现在要统计每个同学的学习效率,学习效率定义为每个人的勤奋值加上周围最多 8 8 个同学的勤奋值,也就是以每个人为中心的 3 × 3 3×3 方阵内勤奋值之和。现在请你统计每个人的学习效率。 输入格式 第一行一个整数 � ( 1 ≤ � ≤ 10 ) n (1≤n≤10),表示班级的规模。 接下来 � n 行,每行 � n 个整数 � � , � ( 1 ≤ � � , � ≤ 100 ) a i,j (1≤a i,j ≤100),表示每个人的勤奋值。 输出格式 输出 � n 行,每行 � n 个整数,每个整数表示每个人的学习效率
时间: 2024-01-16 16:05:19 浏览: 45
这道题可以使用二维数组来存储每个同学的勤奋值,然后再遍历每个同学,计算他周围8个同学的勤奋值之和,最后输出每个同学的学习效率即可。
C语言代码如下:
```c
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int a[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
scanf("%d", &a[i][j]);
}
}
// 遍历每个同学,计算学习效率
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
int sum = 0;
// 遍历周围8个同学
for(int k=i-1;k<=i+1;k++){
for(int l=j-1;l<=j+1;l++){
if(k>=0 && k<n && l>=0 && l<n && !(k==i && l==j)){
sum += a[k][l];
}
}
}
printf("%d ", a[i][j]+sum);
}
printf("\n");
}
return 0;
}
```
注意:在遍历周围8个同学时,需要判断下标是否越界,同时还要排除中心同学本身。