悠游


私信TA

用户名:uq_87643911115

访问量:6912

签 名:

你好

等  级
排  名 42
经  验 12823
参赛次数 0
文章发表 207
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

大家好!我是糕手

解题思路:

由题意可知,最外层数组元素不变,内层元素变化时,其他内层元素的变化仍是在之前没变化的元素上计算,也就是说对于结果是我们要创建一个新的数组来存储,
注意事项:

多维数组传递给函数时,与一维数组不同,用指针的话,列必须要写出来,还有题目要求有小数的话要舍入到最接近的数
参考代码:

#include<stdio.h>
void fun(int n,int m,int (*a)[m])
{
    int b[n][m];
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            float c=0;
            int d=0;
            if(i==0||j==0||i==n-1||j==m-1)
            {
                b[i][j]=a[i][j];
            }
            else
            {
                c=a[i][j]+a[i-1][j]+a[i][j-1]+a[i+1][j]+a[i][j+1];
                c=c/5;
                d=c;
                if(c-d>0.5)//舍入到最接近的数
                {
                    d=d+1;
                }
                b[i][j]=d;
            }
            
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            printf("%d ",b[i][j]);
        }
        printf("\n");
    }
}
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	int a[n][m];
	for(int i=0;i<n;i++)
	{
	    for(int j=0;j<m;j++)
	    {
	        scanf("%d",&a[i][j]);
	    }
	}
	fun(n,m,a);
	return 0;
}


 

0.0分

1 人评分

  评论区

  • «
  • »