如何跟踪Java中三列的总和
我的问题是如何让我的程序分别添加每一列,然后找到平均值。例如,用Java表示的33+42+11/3 希望这能澄清问题 我还链接了下面的数字和列如何跟踪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)
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;
}
}