编程大白


私信TA

用户名:dotcpp0673956

访问量:78

签 名:

等  级
排  名 1193
经  验 3111
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 南京信息工程大学
专  业

  自我简介:

TA的其他文章

#include<stdio.h>
int max(int x,int y)
{
	return x>y?x:y;
}
int min(int x,int y)
{
	return x>y?y:x;
}
int main()
{
	int R,C;
	scanf("%d%d",&R,&C);
	int a[R][C];
	int i,j,p=0,q=0,m,n,maxi,sum=0;
	for(i=0;i<R;i++)
	{

解题思路:
遍历周围4个位置的木瓜数进行比较。
注意事项:
在遍历周围的位置时注意临接情况。
参考代码:

#include<stdio.h>

int max(int x,int y)

{

return x>y?x:y;

}

int min(int x,int y)

{

return x>y?y:x;

}

int main()

{

int R,C;

scanf("%d%d",&R,&C);

int a[R][C];

int i,j,p=0,q=0,m,n,maxi,sum=0;

for(i=0;i<R;i++)

{

for(j=0;j<C;j++)

{

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

}

}

while(!(p==R-1&&q==C-1))

{

maxi=0;

sum+=a[p][q];

a[p][q]=0;

for(i=max(p-1,0);i<=min(p+1,R-1);i++)#注意临界情况进行比较

{

for(j=max(q-1,0);j<=min(q+1,C-1);j++)

{

if(i==p&&j==q)#排除遍历时遍历至原位

continue;

else if(p==i||j==q)#至少横坐标或纵坐标有一个是与原位置一样,故为周围4个空位

{

if(a[i][j]>=maxi)

{

maxi=a[i][j];

m=i;

n=j;

}

}

}

}

p=m;

q=n;

}

sum+=a[R-1][C-1];#最后一个位置在while循环中并未加入,需要后续补入

printf("%d\n",sum);

return 0;

}


 

0.0分

1 人评分

  评论区

  • «
  • »