全国绿色计算大赛 模拟赛第二阶段(C++)第3关:渡口与船

 算法提交代码

int countOfShips(char **ferry, int m, int n)
{
	/********** BEGIN **********/
   	int mount=0;
	for(int i=0;i

 测试代码

int main()
{
	int m,n;
	int ans;
	cin>>m>>n;
	char **ferry;
	//给二维数组开空间 
	ferry=new char*[m];
	for(int i=0;i>ferry[i][j];
		}
	}
	ans=countOfShips(ferry,m,n);
	cout<

 编写算法时将cin>>m,n;和输入二维数组的也加到测试代码里,导致提交不成功,CSDN上看到一个用Java写的渡船才晓得是怎么回事。(Java代码:https://blog.csdn.net/weixin_41275621/article/details/82950190 )他写的Java是另一种算法也可供参考。


挑战任务

给定一个渡口(二维的),请计算渡口中停了多少艘船。 船用 + 表示,空位用字母o表示。 你需要遵守以下规则:

  • 给你一个有效的渡口(二维数组),仅由船和空位组成。
  • 船只能水平或者垂直放置。换句话说,船只能由 1 行, N 列组成,或者 N 行, 1 列组成,其中N可以是任意大小。
  • 两艘船之间至少有一个水平或垂直的空位分隔,即没有相邻的船。

编程要求

补充完善右侧代码区中的countOfShips函数,实现根据输入的数组来判断船的数量。

测试说明

输入说明:

  • 第一行表示渡口的长和宽(m, n);
  • 接下输入m行n列的数据表示渡口的停船情况;

输出说明:

  • 渡口中船数量;

样例1

输入:

3 4
+ + + +
o o o o
o o o o

输出:

1

样例2

输入:

3 4
+ o o +
o o o +
o o o +

输出:

2

无效样例:

3 4
o o o +
+ + + +
o o o +

你不会收到这样的无效样例,因为船之间至少会有一个空位将它们分开。


开始挑战吧,祝你成功

你可能感兴趣的:(全国绿色计算大赛 模拟赛第二阶段(C++)第3关:渡口与船)