关于数组的一个小程序

一个关于数组的小程序。产生一个由30个随机数组成的随机数组,这些随机数都介于0~100之间。用一个数组统计这些数落在0~10、10~20……90~100之间的概率。并且以百分数的形式输出概率。
import java.text.*;//要用到DecimalFormat类
class arrayCounts{

public static void main(String args[]){
//int i=randomInt(0,100);
//System.out.println(i);
int[] a=randomArray(30);
//int[] a={100,10};
//printArray(a);
printCounts(scoreHist(a));
}

//返回一个位于low和high之间的整数界于0~100之间
public static int randomInt(int low,int high){
double x=Math.random();
return (int)(x*(high-low)+low);
}

//产生一个界于0到100之间的随机数组。
public static int[] randomArray(int n){
int[] a=new int[n];
for(int i=0;i<a.length;i++){
a[i]=randomInt(0,100);
}
return a;
}

//输出一个普通数组的全部元素
public static void printArray(int[] a){
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}

//输出本程序统计数组的元素
public static void printCounts(int[] a){
for(int i=0;i<a.length;i++){
if(i==0){
System.out.print("0~10 ");//空5个格
}
else if(i==9){
System.out.print((i*10+1)+"~"+(i*10+10)+" ");//空3个格
}
else{
System.out.print((i*10+1)+"~"+(i*10+10)+" ");//空4个格
}

System.out.print(a[i]+" ");
double d=((double)a[i])/30.0;
//double d=((double)a[i])/2.0;

//用DecimalFormat输出百分数
DecimalFormat df=null;
try{
df=(DecimalFormat)NumberFormat.getPercentInstance();
}catch(ClassCastException e)
{
System.err.println(e);
}
df.applyPattern("00.0%");

//上面这段代码貌似用 DecimalFormat df = new DecimalFormat("00.0%");
//就可以了。

System.out.println(df.format(d));
}
}

//以数组形式返回一个计数的频率直方图
public static int[] scoreHist(int[] scores){
int[] counts=new int[10];
for(int i=0;i<scores.length;i++){
int index=scores[i]/11;
//int index=scores[i]/10;
counts[index]++;
}
return counts;
}
}

最后一个方法scoreHist中要使用int index=scores[i]/11;而不是除以10。因为要统计的是0~10,11~20……除以10的话,统计的将是0~9,11~19……90~99,所以如果产生了100,还将发生溢出。

PS:JE不是说上传图片支持GIF吗,写着呢。可是,上传了GIF不能显示动态效果啊~~~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值