-6

所以我使用这段代码对一个数字数组进行排序,但它给了我一个错误,我需要一个“}”。我错过了一些“}”吗?任何帮助,将不胜感激!

double Median()
{
    int k,Hide;

    boolean IsThereASwap;
    IsThereASwap = false;

    while(IsThereASwap == false )
    {
        for ( k = 0 ; k < TheArrayAssingment.length - 1; k++)
        {
            if( TheArrayAssingment[k] > TheArrayAssingment[k+1] )
            {
                Hide = TheArrayAssingment[k+1];
                TheArrayAssingment[k+1] = TheArrayAssingment[k];
                TheArrayAssingment[k]   = Hide;
                IsThereASwap = true;
            }
        }
        if ( IsThereASwap == true)
        {
            IsThereASwap = false;
        }
        else
        {
            IsThereASwap = true;
        }

    }
}
4

3 回答 3

4

你没有返回一个值。该方法被声明为返回 a double,但是您在方法结束时没有返回任何内容。

于 2012-07-21T23:32:27.663 回答
3

我发现您的代码存在太多问题,无法回答您的问题。

首先学习并遵循 Sun Java 编码标准。

一个好的 IDE 将使诸如括号不匹配和无法返回值之类的错误成为过去。尝试 IntelliJ;这是最好的。

这将比你的工作得更好:

package cruft;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * StatisticsUtil has statistics utility methods
 * @author Michael
 * @link
 * @since 7/21/12 7:30 PM
 */
public class StatisticsUtil {

    public static void main(String[] args) {
        List<Double> values = new ArrayList<>();
        for (String arg : args) {
            values.add(Double.valueOf(arg));
        }
        System.out.println(String.format("median: %10.4f", getMedian(values)));
    }

    public static double getMedian(List<Double> values) {
        double median = 0.0;
        if (values != null) {
            int numValues = values.size();
            if (numValues > 0) {
                Collections.sort(values);
                if ((numValues%2) == 0) {
                    median = (values.get((numValues/2)-1)+values.get(numValues/2))/2.0;
                } else {
                    median = values.get(numValues/2);
                }
            }
        }
        return median;
    }

    public static double getMedian(double [] values) {
        double median = 0.0;
        if (values != null) {
            int numValues = values.length;
            if (numValues > 0) {
                Arrays.sort(values);
                if ((numValues%2) == 0) {
                    median = (values[(numValues/2)-1]+values[numValues/2])/2.0;
                } else {
                    median = values[numValues/2];
                }
            }
        }
        return median;
    }
}
于 2012-07-21T23:56:40.043 回答
0

你声明方法“Median()”返回一个双精度值,但你不返回任何东西。

于 2012-07-21T23:33:29.690 回答