如果我有两个数组,一个名为rank,一个名为rating,它们都可以容纳 12 个元素。评级从用户输入(在本例中为扫描仪)获取其元素。rank数组然后将从 rating 数组中获取元素并将它们从最低到最高排序,但是如果 rating 中有两个相同的元素,程序应该在索引中找到元素的位置并检查这些数字的排名是。
那么有没有一种方法或方法来找出哪些元素是相同的以及有多少是相同的?这是目前的代码。
public static void main(String[] args) {
int participant = 0;
int rating[] = new int[12];
double rank[] = {1,2,3,4,5,6,7,8,9,10,11,12};
String display = "Participant\tRating\t\tRank\n";
Scanner scan = new Scanner(System.in);
for(int i=0; i<rating.length; i++){
participant++;
System.out.println("Enter rating for participant "+participant+":");
rating[i] = scan.nextInt();
}
Arrays.sort(rating);
participant = 1;
for(int i=0; i<rank.length; i++){
display += participant+"\t\t"+rating[i]+"\t\t";
if(rating[i] == rating[i]-1 || rating[i] == rating[i]+1){
display += (rank[i]+rank[i]-1)/2;
}
else{
display += rank[i];
}
display+="\n";
participant++;
}
System.out.println(display);
}
我想要的是每当评级数组中有两个相同的元素时,它应该采用相等评级元素所在的排名数字并除以 2。
希望这是有道理的。