java - 如何跟踪三列Java中每一列的总和
问题描述
我的问题是如何让我的程序分别添加每一列,然后找到平均值。例如 33+42+11 /3 用 Java 表示。
希望能澄清这个问题。
我还链接了下面的数字和列
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 个计数,并且没有对这些数组进行任何大小检查——这些类型的问题似乎超出了原始问题的范围。
https://repl.it/repls/TintedNarrowRectangle
import java.util.Scanner;
public class Main {
public static void main(String[] args){
String fakeFileInput = " 127 33 22\n2147483647 42 59\n10 11 55";
Scanner scanner = new Scanner(fakeFileInput);
if (!scanner.hasNext()) {
System.out.println("No integers");
System.exit(0);
}
long[] sums = new long[10];
int[] counts = new int[10];
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
Scanner innerScan = new Scanner(line);
int current = 0;
while (innerScan.hasNextInt()) {
int number = innerScan.nextInt();
sums[current] += number;
counts[current] += 1;
current++;
}
}
for (int i = 0; i < sums.length; i++) {
System.out.println((1.0*sums[i])/counts[i] + " average for " + i + " column");
}
}
}
推荐阅读
- json - Gitlab CI Webhook - 如何查看 JSON 有效负载
- javascript - 如何在 React 中为 useReducer 钩子编写更少、重复的代码?
- hyperledger-fabric - 智能合约中的 Hyperledger Fabric 背书
- snakemake - snakemake:将文件复制到多个文件夹
- javascript - 页脚/导航栏不会固定在底部
- raku - 制作自定义声明器
- java - Android跳过Activity并把它放在最后
- javafx - 使用 JavaFX 中的任务 Arraylist 执行并等待多个并行和顺序任务
- php - 从文件路径中删除图像
- angular - Chrome 无法将 cookie 路径设置为“path=/example”