【发布时间】:2015-02-18 06:03:05
【问题描述】:
我有问题。
我正在尝试制作一个用户可以输入的程序
r=行 c=列 之后的 0 和 1,只要矩阵是满的
所以它会创建一个图片 .... r*v ....,用 char 的 1 和 0 填充。
那些 1 代表块。 现在程序应该输出那张图片中有多少块? (00010011110 - 随机矩阵第一行的示例) - 将打印出 2
我正在努力正确地输入该程序,然后计算这些块的数量。
这是我迄今为止一直在尝试的。
import java.util.Scanner;
class Blocks{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int rowNum=sc.nextInt(); //number of rows
int columnNum=sc.nextInt(); //number of columns
int blocks=0;
char[][] matrix=new char[rowNum][columnNum];
for (int a = 0; a < rowNum; a++) {
for (int b = 0; b < columnNum; b++) {
char[] row= sc.next().toCharArray();
for(int i=0; i<matrix.length;i++) {
if(row[i]=='1'){
blocks++;
if(row[i+1]=='1') {
blocks--;
}
}
}
}
}
}
【问题讨论】:
-
为什么 2 代表(00010011110 - 例如随机矩阵的第一行)- 会打印出 2?
-
有什么问题?
-
另一个例子:r=2 c=4 0010 1100 1111 0101 这将打印出 5。因为它只在该矩阵中查找 1,而 1 构成一个块。 11 是块大小 2。1111 是块大小 4...等等。上面的例子有 3 个块。第一排一个,第二排一个,第三排又一个,第四排两个街区
-
问题是我什至不能正确输入。我如何一直要求用户给我这些数字(0 和 1),直到矩阵已满。
-
块是一个或多个相邻元素的组,其值为 1。
标签: java matrix multidimensional-array