我正在尝试解决一个练习:我有一个txt文件,其中0和3的图像(20行x 20列)是随机的。在每个图像(20x20)之间存在一个空行的间隙。
根据这个txt文件,我必须计算出这些图像中有多少比0还多1。最后,我还需要在一个图像中找到最大数量的1。
到目前为止,这是我的代码......但我有点失落
import java.io.File;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
File input = new File("path to my txt file");
Scanner scanner = new Scanner(new File("path to my txt file"));
int counter = 0;
while (scanner.hasNext()){
String word1 = scanner.next();
String word2 = scanner.next();
boolean switcher = false;
int howManyOnes ("//path to my image file????") {
int ones = 0;
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
ones +=?[i][j];
}
}
return ones;
}
}
}
答案 0 :(得分:0)
以下是我的理解,我将以此为基础。
您的输入是一个文本文件,其中每个非空白行总共有20个字符,其中一些字符是&#39; 1&#39;其中一些是&#39; 0&#39;。
&#34;图像&#34;是一系列连续的非空行。当一个空行出现时,它表示一个&#34;图像的结束&#34;以及下一个&#34;图像&#34;。
的开头您的目标是:
计算这些图片中有多少图像比0更多1。
和
找到一张图片中出现的最高数量1。
由于这似乎是一个家庭作业类型的问题,我会先给你一些关于如何设计代码的指导,如果你还在努力,我会提供额外的细节。请参阅how to ask and answer homework questions。
<强>假设强>:
String
类的任何方法。考虑您要跟踪的内容以及您希望跟踪它们的范围。您需要能够识别图像的开始和结束时间,并跟踪您在该图像中看到的1和0。也就是说,当图像开始时,该图像的1的数量和0的数量应该为零,并且当您在图像的每一行中识别它们时,您应该递增它们。处理完图像后,您需要将这些图像重置为0以准备好处理下一张图像。
在您处理单张图片的同时,您需要确定该图片中1的数量是否大于目前为止您在任何其他图片中看到的1的数量如果它跟踪那个价值。该值的范围大于之前提到的值,因为它由图像的全部中的1的数量确定。每个图像必须 NOT 重置。类似地,具有多于0的1的图像的数量也具有这种范围 - 它应该 NOT 重置每个图像,而应该保持它直到整个文件被处理。
接下来,考虑如何确定图像中的1和0的数量。看起来你正在考虑循环遍历每个角色,你可以这样做,但有一种更简单的方法,它与我提到的假设有关。
我希望这能让你开始。在您编写更多代码时请更新您的问题,我也很乐意更新我的答案。