作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
...当一个数组中的分数按降序重新排列时,另一个数组具有正确的分数名称,例如,当 cliff 得分 1、Dave 得分 2、Eric 得分 3、Bob 得分 4 和 Andy分数 5...分数表应该看起来像这样(没有格式化,因为它将在输出中只是为了显示我需要对数据进行的处理。):Andy 5、Bob 4、Eric 3、Dave 2、Cliff 1 . 或者至少这是需要排列名字的方式,以便在分数出来时它们保持相同的顺序/与他们的分数配对。你怎么能这样做?这是到目前为止的完整程序,我刚才关注的部分是两个方法:“排序”。我想这只是我对交换或排序功能如何工作的理解有问题。我只真正关心数组的排序和打印,其余的只是为了展示程序应该做的更多事情。
所有帮助将不胜感激:)
import java.util.Scanner;
public class InThirdPlace {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String candidates[] = {"cliff", "Dave", "Eric", "Bob", "Andy"};
int votes [] = new int [5];
int vote = 0;
System.out.println("please enter candidate no. (0-4) you wish to vote for");
vote = input.nextInt();
while (vote != -1){
if (vote >= 0 && vote <= votes.length - 1){
votes[vote] ++ ;}
else{
System.out.println("please enter a valid value.");}
System.out.println("Enter a vote (0 -4)");
vote = input.nextInt();}
sort(votes, candidates);
printArray(candidates, votes);
System.out.println("3rd "+ candidates[2]);
System.out.println("in 2nd "+ candidates [1]);
System.out.print("1st " + candidates [0]);
}
public static void sort(int votes[], String names[]){
for (int i = votes.length; i>=2; i--){
int largestIndex = findPositionOfBiggest(votes,i);
swap(votes, i-1, largestIndex);
swapNames(names, i-1, largestIndex);
}
}
public static int findPositionOfBiggest(int votes[], int numItems){
int indexLargest=0;//Set the largest index to 0
for(int loop=1;loop<numItems;loop++){
if (votes[loop]>votes[indexLargest]){
indexLargest = loop;
}
}
return indexLargest;
}
public static void swap(int votes[], int pos1, int pos2 ){
int temp = votes[pos1];
votes[pos1] = votes[pos2];
votes[pos2] = temp;
}
public static void swapNames(String names[], int pos1, int pos2 ){
String temp = names[pos1];
names[pos1] = names[pos2];
names[pos2] = temp;
}
public static void printArray(String names[], int votes[]){
for (int i=0; i < votes.length; i++){
System.out.println(names[i] + votes[i] + " ");
}
System.out.println();
}
}
最佳答案
为什么不让您的数组成为您创建的对象的数组?然后,您可以将名称和分数放在一个地方,当您对数组进行排序时,名称已经与其相关联。
关于java - 如何让两个数组以完全相同的方式排序,以便,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5746202/
我是一名优秀的程序员,十分优秀!