菜鸟求带飞


私信TA

用户名:dotcpp0610279

访问量:2414

签 名:

等  级
排  名 1588
经  验 2764
参赛次数 0
文章发表 8
年  龄 19
在职情况 学生
学  校 哔哩哔哩大学
专  业 计算机科学与技术

  自我简介:

TA的其他文章

解题思路:

1.四周最外侧的像素点灰度值不变;

2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。

3.round()函数是四舍五入(ceil()函数是向上取整,floor()函数是向下取整)



注意事项:

参考代码:

#include<stdio.h>

int main()

{

int n,m,rest=0;

int a[520][520];

scanf("%d %d",&n,&m);

scanf("\n");

for(int i=0;i<n;i++){

    for(int j=0;j<m;j++){

        scanf("%d",&a[i][j]);

    }

    scanf("\n");

}

for(int i=0;i<n;i++){

    for(int j=0;j<m;j++){

        if(i==0||j==0||j==m-1||i==n-1){  //四周最外侧的像素不变,直接输出

            printf("%d ",a[i][j]);

        }

        else{

            rest=round((a[i][j]+a[i-1][j]+a[i+1][j]+a[i][j-1]+a[i][j+1])/5.0);

       printf("%d ",rest);

        }

    }

    printf("\n");

}

return 0;

}


 

0.0分

7 人评分

  评论区

n, m = map(int, input().split())
A, B = [], [[0]*m for i in range(n)]
for _ in range(n):
    A.append(list(map(int, input().strip().split())))
for i in range(n):
    for j in range(m):
        if j == 0 or j == m - 1 or i == 0 or i == n-1:
            B[i][j] = A[i][j]
            continue
        w = A[i-1][j]
        a = A[i][j-1]
        s = A[i+1][j]
        d = A[i][j+1]
        B[i][j] = (A[i][j]+w+a+s+d)//5
    print(" ".join(map(str, B[i])))

屌大的帮我看看为啥过不了
2024-03-31 19:05:15
  • «
  • 1
  • »