c primer plus 编程练习

来源:百度知道 编辑:UC知道 时间:2024/06/25 12:38:02
哪位能帮忙解答以下 C primer plus(第五版)第13章编程练习的最后一道题?想不到也找不到参考答案!
请具体一点,最好能给出源码
谢谢!

第13题?比较arr[i][j]和上下左右四个相邻的元素就是了,如果之间的差不是全部大于1就不用动,否则用边上那四个的平均值代替arr[i][j]就是了,注意一下边角的情况即可
...看看下面这个程序能用不
void fun(int arr[][30])
{
int round;
int i,j,flag1,flag2,flag3,flag4,num1,num2,num3,num4;
for(i=0;i<20;i++)
for(j=0;j<30;j++)
{
round=4;//表示该元素周围的元素个数,1,2,3,4
if(i==0)//考虑处于第一行的情况
{
num1=0;//求平均数的时候用
flag1=1;//相差是否大于1的标志
round--;
}
else
{
num1=arr[i-1][j];
flag1=(abs(arr[i][j]-num1)>1?1:0);
}
if(j==0)
{
num2=0;
flag2=1;
round--;
}
else
{
num2=arr[i][j-1];
flag2=(abs(arr[i][j]-num2)>1?1:0);
}
if(j==29)
{
num3=0;
flag3=1;
round--;
}
else
{
num3=arr[i][j+1];
flag3=(abs(arr[i][j]-num3)>1?1:0);
}
if(i==19)
{
num4=0;
flag4=1;
round--;
}
else
{
num4=arr[i+1][j];
flag