【问题标题】:Calculating Average After Parsing Integers解析整数后计算平均值
【发布时间】:2015-11-17 06:52:09
【问题描述】:

这是针对 Java 的。 我刚刚完成了从 String 到 int 的每一列的解析。但是,现在我很难弄清楚如何计算每列并找到平均值。

例如,这是我解析每一列后的结果:

int Q1 = Integer.parseInt(columns[1]);

这是我试图找到的平均值,但没有成功。

int Q1s = Q1;


        int i;
        int total = 0;

        for (i = 0; i < 6; i++) {
            total = total + Q1s;
        }

        double avg = total / Q1s;
        return avg;

我知道如何以正常方式求平均值(例如:int Q1[] = {1,2,3};) 但是解析整数数组就不一样了。

任何关于如何进行的提示将不胜感激!

附:我不想要答案......我只是想要一个从这里去哪里的方向。这就是为什么我没有放我目前拥有的完整代码。

【问题讨论】:

  • 为什么 >> 双平均 = 总计 / Q1s;而不是>> double avg = total / ; ?
  • 好吧,Q1s 在你的循环中永远不会改变,所以你只是将它乘以 6。如果你在循环中遗漏了一些其他代码,那么我们就帮不了你了。但看起来问题是:您读取的其他 5 个值发生了什么?你对他们做了什么吗?
  • 你是从二维数组开始的吗?您必须为我们添加更多代码才能看到您在做什么

标签: java average


【解决方案1】:

您计算total 的逻辑是错误的。您不是添加所有元素,而是添加第一个元素 n 次。

假设Q1 是您的Strings 数组。

for(int i = 0; i < Q1.length; ++i)
{
 total += Integer.parseInt(Q1[i]);//this is what you want to do. Parse it here
}
double avg = (double) total / Q1.length;

【讨论】:

  • 我知道有问题,但无法确定。我现在试试。谢谢!
  • 如果没有类型转换,它仍然会给出错误的答案。 Int 除以 int 将得到 int。
【解决方案2】:

两件事:

1) 你应该使用:

  double avg = total / <ColumnCount>;

2) 你需要强制转换,所以

  double avg = ((double)total) / <ColumnCount>;

【讨论】:

    【解决方案3】:
    double avg = total / Q1s;
    

    这里计算平均值错误。应该是

    double avg = total / 6;
    

    应该除以这里的元素总数 使用 6 作为常数。

    【讨论】:

    • 这是错误的,因为你在做整数除法。
    猜你喜欢
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 2017-09-26
    • 2012-06-19
    相关资源
    最近更新 更多