下面的代码计算出数组中零、正数和负数的数量,然后计算出数组中正数、负数和零项的比率。
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]>=1
或 arr[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/