Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何跟踪Java中三列的总和_Java - Fatal编程技术网

如何跟踪Java中三列的总和

如何跟踪Java中三列的总和,java,Java,我的问题是如何让我的程序分别添加每一列,然后找到平均值。例如,用Java表示的33+42+11/3 希望这能澄清问题 我还链接了下面的数字和列 import java.util.Arrays; import java.util.Scanner; import java.io.FileInputStream; import java.io.IOException; public class Assignment { public static void main(String[] args)

我的问题是如何让我的程序分别添加每一列,然后找到平均值。例如,用Java表示的33+42+11/3

希望这能澄清问题

我还链接了下面的数字和列

import java.util.Arrays;
import java.util.Scanner;
import java.io.FileInputStream;
import java.io.IOException;

public class Assignment
{
public static void main(String[] args) 
throws IOException
{
    
FileInputStream control = null;
Scanner scanner = null;  

if (args.length == 0) {
    System.out.println("file name expected");
    System.exit(0);
}
    
System.out.println("Opening file " + args[0]);
control = new FileInputStream(args[0]);
System.out.println("Opening of file " + args[0] + " successful");

scanner = new Scanner(control);

long sum = 0;
int count = 0;

if (!scanner.hasNext()) {
    System.out.println("No integers");
    System.exit(0);
}

while (scanner.hasNext()) {
    long number = scanner.nextInt();
    sum += number; 
    count++;
}

long average = sum / count;

System.out.println(average);

control.close();

  }
}
这是专栏。不太确定如何使其从127开始添加到10,其他两列也是如此

 127          33  22
 2147483647   42  59
 10           11  55

我想我能解释这个问题

这里有一个可行的解决方案——请注意,您需要使用一台扫描仪一次扫描一行,然后扫描每一行,将其拆分为列。然后,我将这些总和和计数存储在一个数组中,正如您提到的,您希望使用数组。然而,我只是让这些数组最多容纳10个计数,并没有对这些进行任何大小检查-这些类型的问题似乎超出了原始问题的范围

import java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
字符串fakeFileInput=“127 33 22\n2147483647 42 59\n10 11 55”;
扫描仪=新扫描仪(fakeFileInput);
如果(!scanner.hasNext()){
System.out.println(“无整数”);
系统出口(0);
}
长[]和=新长[10];
int[]计数=新的int[10];
while(scanner.hasNextLine()){
字符串行=scanner.nextLine();
扫描仪内部扫描=新扫描仪(行);
int电流=0;
while(innerScan.hasNextInt()){
int number=innerScan.nextInt();
总和[当前]+=个数;
计数[当前]+=1;
电流++;
}
}
for(int i=0;i
我只是提供了一个3*3的网格解决方案,我的目标是保持每个列的总和。我的最终输出是{(127+2147483647+10),(33+42+11),(22+59+55)}

为此,您只需要维护另一个阵列。例如,您将在sum[]数组中保留每个列的总和

因为只有3列,所以只需要sum[]大小为3

int[] sum = new int[3]
分配后,可以将每个索引值的和数组重置为0

 for (int i = 0; i < 3; i++) {
    sum[i]=0
  }
for(int i=0;i<3;i++){
和[i]=0
}
现在唯一剩下的就是获取每一行的输入值。因为每行只有3列,总共有3个RAW。您可以按照下面的代码片段进行操作

 for (int i=0;i<3;i++){
     for(int j=0;j<3;j++){
        int number = scanner.nextInt();
        sum[i] = sum[i] + number;
     }
 }

用于(int i=0;iHi,欢迎使用SO。您的问题不清楚。请阅读并:保留一个包含三个总数的数组,每列一个。当您阅读数字行时,将第一个数字添加到第一个总数中,将第二个数字添加到第二个总数中,等等。非常感谢您,我非常感谢您,对问题的糟糕措辞表示歉意
 for (int i=0;i<3;i++){
     for(int j=0;j<3;j++){
        int number = scanner.nextInt();
        sum[i] = sum[i] + number;
     }
 }