此代码可以将十进制转换为二进制,但编译器在将数组传递给函数
时检查了一些错误rishi.java:33:错误:不兼容的类型b [i] = dtob(a [i]); ^ required:int found:void 1 error
import java.util.Scanner;
class Rishi {
public static void dtob(int n){
int a[]=new int[25];
int binary[] = new int[25];
int index = 0;
while(a[n] > 0){
binary[index++] = a[n]%2;
a[n] = a[n]/2;
}
for(int i = index-1;i >= 0;i--){
System.out.print(binary[i]+" ");
}
}
//enter code here
public void main(String args[]){
Scanner sc =new Scanner(System.in);
int a[]=new int[25];
int b[]=new int[25];
int t,i,j;
for(i=0;i<5;i++){
a[i]=sc.nextInt();
}
for(i=0;i<5;i++){
Rishi dtb = new Rishi();//calling
b[i]=dtob(a[i]);
System.out.println(b[i]);
}
}
}
答案 0 :(得分:1)
您的代码中存在多个问题,但导致错误的原因是您在return statement
方法中遗漏了dtob(int n)
。 dtob(int n)
的类型应为int
而非void
,并且还应返回您正在计算的二进制值。