3

我有一个作业,我已经写了前两部分,我只是不知道如何找到最小的数字。我应该提到它在 jFrame (gui) 中。它应该看起来像这样:

在此处输入图像描述

假设我有一个数字列表(10 5 8 7 4 9),我想知道数字 7 在哪个位置。我该怎么做?在过去的一个小时里,我一直被困在这个问题上。:/这是我到目前为止所拥有的:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String s = jTextField1.getText();
    String[]divide = s.split(" ");
    int[] number = new int[10];
    int sum = 1;
    for(int i = 0; i<10; i++)
    {
        number[i] = Integer.parseInt(divide[i]);
        sum = sum * number[i];
    }
    jTextField2.setText(Integer.toString(sum));
}                                        

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
   String s = jTextField1.getText();
    String[]divide = s.split(" ");
    Arrays.sort(divide);
    jTextField3.setText(divide[0]);
}                                        

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         


    public static int findMin(ArrayList<Integer> n)
{
int minValue = Integer.MAX_VALUE; 
int minIndex = -1;
for(int i = 0; i < n.size(); i++){
    if(n.get(i) < minValue){
        minIndex = i;
    }
}
return minIndex;
4

1 回答 1

3

当您找到最小值的索引时,您应该更新minValue.

public static int findMin(ArrayList<Integer> n) {
    for(int i = 0; i < n.size(); i++){
        if(n.get(i) < minValue){
            minIndex = i;
            minValue = n.get(i);   //Update here
        }
    }
    return minIndex;
}

您的代码总是将第i 个元素与int minValue = Integer.MAX_VALUE;您从未更改过的元素进行比较。

将其添加到语句下方if将对其进行更新,您将获得所需的结果。

于 2013-04-15T20:44:47.313 回答