给定一个N个整数的数组arr,计算它的正、负和零元素与数组大小N的比值。
在新的一行中打印每个分数的小数值,最多6位小数。语言Java
第一行包含一个整数N,即数组的大小。
第二行包含N个以空格分隔的整数,表示数组arr。
输出格式打印3个所需比率,最多保留6位小数。
示例1输入6 3 4 1
输出0.500000输出0.500000输出0.000000
我写了下面的代码为提到的程序,我一直得到错误的错误:不兼容的类型:从double到int的转换可能会有损耗,我将所有内容都声明为double,但仍然会出现错误
import java.util.*;
import java.lang.*;
import java.io.*;
public class Main
{
public static void main (String[] args) throws java.lang.Exception
{
Scanner sc = new Scanner(System.in);
double a = sc.nextDouble();
double b[] = new double[a];
double c=0,d=0,e=0;
for(double i=0;i<a;i++){
b[i]= sc.nextDouble();//your code here
}
for(double j=0 ; j<a ;j++){
if(b[j]>0){
c++;
}
else if(b[j]<0){
d++;
}
else{
e++;
}
}
System.out.println(String.format(" %.6f",(c/a)));
System.out.println(String.format(" %.6f",(d/a)));
System.out.println(String.format(" %.6f",(e/a)));
}}
1条答案
按热度按时间8yparm6h1#
你使用
a
,i
和j
作为数组b
的索引,但是在java中不允许使用双精度变量作为索引,你必须使用整数。你可以使用Math.floor()
将双精度变量转换为整数