返回总销售额最高的列的索引?

时间:2018-02-22 00:51:42

标签: java arrays for-loop methods indexing

我有一个totalSale数组,可以获得每个产品的销售总额。例如,数组中的索引0给出了product1的总销售额,依此类推。我的下一个方法输出应该只返回总销售额最高的产品索引。这是我的代码,但它没有输出正确的答案,我无法弄清楚为什么。任何人都可以帮助我吗?

   public static int mostpopularProduct( int[] totalSale)
{
    int mostPopularProduct=0;
    int firstProduct=totalSale[0];

    for(int i=1;i<totalSale.length;i++)
    {
     if(totalSale[i]>firstProduct)
     {

         mostPopularProduct=i;
        }


    }

    System.out.println("Most popular product :" + popularProduct);
    return popularProduct;
}

2 个答案:

答案 0 :(得分:1)

您正在设置mostPopularProduct并打印popularProduct此外,if(totalSale[i]>firstProduct)条件将始终与第一个产品进行比较,而不是实际上最受欢迎的产品

试试此代码

public static int mostpopularProduct( int[] totalSale) {
    int mostPopularProduct=0;


        for(int i=1;i<totalSale.length;i++) {
             if(totalSale[i]>totalSale[mostPopularProduct]) {
                 mostPopularProduct=i;
             }
        }


    System.out.println("Most popular product :" + mostPopularProduct);
    return mostPopularProduct;
 }

P.S。如果totalSale长度为0,您可能希望查找返回的内容,因为在这种情况下没有产品,因此无法确定mostPopularProduct。现在,这个程序在这种情况下只返回0

答案 1 :(得分:-2)

//您需要设置最大值产品。否则你总是只与第一个比较。  firstProduct = totalSale [i];