我有一个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;
}
答案 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];