帮忙看看 这个程序 有点小问题 ?
要求定义一个int型数组a,包含100个元素,保存100个随机的4位数。再定义一个
int型数组b,包含10个元素。统计a数组中的元素对10求余等于0的个数,保存
到b[0]中;对10求余等于1的个数,保存到b[1]中,……依此类推。
public class java15{
public static void main(String[] args){
int[] array;
array= new int[100];
for(int i=0;i<array.length;i++){
array[i] =(int) (Math. random()*10000);// 这里怎么把随机的四位数赋值给数组
System.out.println(array[i]+" ");
}
int b[]=new int[10];
int sum=0 ,k=0;
for(int j=0;j<b.length;j++ ){
for(sum=0,k=0;k<array.length;k++){
if(array[k]%10==j) sum++;
b[j]=sum;
}
System.out.printf("b[%d]=%d\n"+j,b[j]);
}
}
}
运行之后出现 以下问题,求大侠分析 哪方面的问题?
b[10]=Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier 'd'
at java.util.Formatter.format(Unknown Source)
at java.io.PrintStream.format(Unknown Source)
at java.io.PrintStream.printf(Unknown Source)
at java15.main(java15.java:18)
[解决办法]
System.out.printf("b[%d]=%d\n"+j,b[j]);
这一句错了。
把加号改成逗号。
[解决办法]
System.out.println("b[" + j + "]=" + b[j]);
[解决办法]
System.out.printf("b[%d]=%d\n"+j,b[j]);
+j改为,j
%是占位符,后面才一个参数
[解决办法]
楼上正解。。
[解决办法]