java - 数组中项目的比率始终返回零 ~ HackerRank 加减问题

标签 java

下面的代码计算出数组中零、正数和负数的数量,然后计算出数组中正数、负数和零项的比率。

public class Solution {

    static void plusMinus(int[] arr) {
        int pos = 0, neg = 0, zero = 0;
        int arrlength = arr.length;

        for(int i = 0; i < arrlength; i++){

           if(arr[i] > 1){
               pos += 1;
           } else if(arr[i] < 0){
               neg += 1;
           } else if(arr[i] == 0){
               zero += 1;
           }
         }

    double posfrac = pos/arr.length, negfrac = neg/arr.length, zerofrac = 
    zero/arr.length;

    System.out.println(posfrac);
    System.out.println(negfrac);
    System.out.println(zerofrac);
    }

下面的主要函数应该为 plusMinus() 生成随机数组,以便我可以在各种情况下测试 plusMinus()。

    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        int n = scanner.nextInt();
        scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

        int[] arr = new int[n];

        String[] arrItems = scanner.nextLine().split(" ");
        scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

        for (int i = 0; i < n; i++) {
            int arrItem = Integer.parseInt(arrItems[i]);
            arr[i] = arrItem;
        }

        plusMinus(arr);

        scanner.close();
    }
}

我的代码运行时不返回任何内容。我得到输出:

0.0
0.0
0.0

最佳答案

您的代码有两个问题。 首先,检查正数的条件为 arr[i]>=1arr[i]>0

公开课解决方案{

static void plusMinus(int[] arr) {
    float pos = 0, neg = 0, zero = 0;
    float arrlength = arr.length;

    for(int i = 0; i < arrlength; i++){

       if(arr[i] > 0){
           pos += 1;
       } else if(arr[i] < 0){
           neg += 1;
       } else if(arr[i] == 0){
           zero += 1;
       }
     }

double posfrac = pos/arrlength , negfrac = neg/arrlength , zerofrac = 
zero/arrlength ;

System.out.println(posfrac);
System.out.println(negfrac);
System.out.println(zerofrac);
}

关于java - 数组中项目的比率始终返回零 ~ HackerRank 加减问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58109796/

相关文章:

java - 设计场景 : Smartphone class and will have derived classes like IPhone, AndroidPhone,WindowsMo​​bilePhone 甚至可以是带品牌的手机名称

java - 尝试分配卡片图片,但它给了我错误的卡片

java - DefaultMessageListenerContainer 无法与 Websphere MQ 一起使用

java - 如何从 IntelliJ 获取运行本地服务器的 Maven 项目

java - 从一个字符串中获取一个 double

java - 如何在 Eclipse 中从一个项目中跳转到另一个项目中的类型声明(实现)?

java - Intellij 同步输出目录..

java - 如何使用 jadretro 反编译 Java 类

java - SQL 条件原子插入

java - Java 中的 GUI 线程