所以我必须在Java中找到数组中的最小值,但是我必须在另一个并行数组中打印出最小化的相应名称。在我找到最小值的for循环中,我有一个变量位置,当最小值改变时,我设置的变量等于我的for循环中的变量。但每次打印出名称时,它都会打印出数组中的第一个名称,而不是占位符中的名字。
public double getMinimum(double[] money)
{
double lowest = money[0];
for (int p = 0; p < money.length; p++)
{
if (money[p] < lowest)
{
lowest = money[p];
place = p;
}
}
return lowest;
}
在程序员定义的类中找到最小的for循环。
public String getFirstNameMin(String[] firstName)
{
String minFirstName;
minFirstName = firstName[place];
return minFirstName;
}
这是我用来从那个地方的名字数组中找出名字的代码。我究竟做错了什么?我是Java的新手,但我之前用C ++做过所有这些数组的东西,所以如果我遗漏了一些非常简单的东西,或者它在Java中的不同,那就是idk。
答案 0 :(得分:1)
我想说尝试为此创建一个包含用户和钱的单独类:
public class User {
private double money;
private String fname;
private String lname;
//getters/setters/constructors
}
然后从那里你可以简单地比较帐户:
public User getMinimum(User[] users) {
if (users.length <= 0) {
return null;
}
User lowest = users[0];
for (int i = 1; i < users.length; i++) {
if (users[i].getMoney() < lowest.getMoney()) {
lowest = users[i];
}
}
return lowest;
}
答案 1 :(得分:0)
试试这个:
public int getMinIndex(double[] money)
{
double min = money[0];
int minIndex = 0;
for (int p = 0; p < money.length; p++)
{
if (money[p] < min)
{
min = money[p];
minIndex = p;
}
}
return minIndex;
}
public static void main(String[] args)
{
double[] money;
String[] name;
//... init your arrays here!
int index = getMinIndex(money);
System.out.println("Min money = " + money[index] + "; name = " + name[index]);
}
然而,遵循面向对象的方法,流氓解决方案更加出色!!!