public class SameSore {
/**
* 统计同成绩的人数: 可以统计数组中的各个数出现的次数
*/
public static void main(String[] args) {
int arr[] = { 65, 70, 80, 50, 70, 80 };
Arrays.sort(arr); // 升序排列
int len = arr.length - 1;
System.out.println("请输入前多少名?");
Scanner input=new Scanner(System.in);
int num=input.nextInt();
int count[] = new int[num+1]; //由于第1个不取,所以长度比实际的加1 ,存储第多少名的 数据
int score[]=new int[len+1]; //成绩
//第几名 多少个同学
for (int k = 1; k <= count.length-1; k++) {
int hasCount=0;
for(int j=1;j<=k;j++){
hasCount+=count[j]; //已经统计的个数
}
for (int i = len - hasCount; i >= 0; i--) { //统计第几名重复了几个
if (arr[i] == arr[len - hasCount]) {
score[k]=arr[len - hasCount]; //第几名的分数
count[k]++; //第几名的个数
}
}
}
// 结果:
for (int i = 1; i <count.length; i++) {
try{
System.out.println("第" + i + "名,成绩为"+score[i]+":" + count[i]);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("第"+i+"名超出范围哦!");
}
}
}
}