我想我没有得到数组,因为不知何故我再次设法打破一个非常好的程序。
它工作得早,但后来我做了一些事情,它停止了工作。我想回到原来的样子。
主要代码:
public class Lab14d
{
public static void main( String args[] )
{
int r = 5;
int e = 3;
int k = 9;
double[]g ={100,90,85,72.5,95.6};
double[]c ={50.0,100.0,80.0};
double[]a ={93.4,-90.0,90.0};
double[]d ={1,2,3,4,5,6,7,8,9};
Grades w = new Grades();
w.SortArray(g);
w.getSum(g);
w.getAverage(r);
System.out.println(w);
w.SortArray(c);
w.getSum(c);
w.getAverage(e);
System.out.println(w);
w.SortArray(a);
w.getSum(a);
w.getAverage(e);
System.out.println(w);
w.SortArray(d);
w.getSum(d);
w.getAverage(k);
System.out.println(w);
}
}
其他文件中的代码
public class Grades
{
int x = 0;
public Grades()
{
x = 0;
}
public static SortArray(double[] array)
{
Arrays.sort(array);
for (int i = 0; i < array.length; i++)
{
return "Grade " + i + " :: " + " " + array[i];
}
}
public double getSum(double[] array )
{
double sum=0.0;
for(int spot = 0; spot <= array.length; spot++)
{
sum = sum + array[spot];
}
return sum;
}
public double getAverage(int x)
{
double average=0.0;
average = getSum()/2;
return average;
}
public String toString()
{
return "Average = " + getAverage();
}
}
out put i want
grade 0 :: 100.00
grade 1 :: 90.00
grade 2 :: 85.00
grade 3 :: 72.50
grade 4 :: 95.60
average = 88.62
grade 0 :: 50.00
grade 1 :: 100.00
grade 2 :: 80.00
average = 76.67
grade 0 :: 93.40
grade 1 :: -90.00
grade 2 :: 90.00
average = 31.13
grade 0 :: 1.00
grade 1 :: 2.00
grade 2 :: 3.00
grade 3 :: 4.00
grade 4 :: 5.00
grade 5 :: 6.00
grade 6 :: 7.00
grade 7 :: 8.00
grade 8 :: 9.00
average = 5.00
我感谢任何帮助。
答案 0 :(得分:0)
您的代码行average = getSum()/2;
应该给出编译时错误,我们无法在文件中看到该方法。return "Average = " + getAverage();
主要问题是你已经定义了接受参数的方法,但是在这些地方你没有那些参数就调用它们。
我真的怀疑这段代码应该如何工作,
public static SortArray(double[] array)
没有指定RETURN类型!
答案 1 :(得分:0)
你的方法只返回结果,但你没有将它分配给任何变量或者不打印你得到的结果!!而不是你试图打印对象本身! return语句不会打印到控制台..它只会将结果传递给它所在的位置/我们分配给它的位置。 我的建议是:
1:将返回的状态更改为打印语句(如果您希望自己在那里执行所有方法)
return "Grade " + i + " :: " + " " + array[i];
到
System.out.println("Grade " + i + " :: " + " " + array[i]);
我认为最好从那里打印,因为在上面的语句中你需要从循环本身打印结果,它比存储然后传递和打印它更好......
答案 2 :(得分:0)
您的代码充满了问题,您返回了错误的值,未使用的变量(x),未指定返回类型等。以下是更正后的版本。我用Double [](对象而不是基元)替换了double [],这样我就可以按降序使用Arrays.Sort对它们进行排序(如你所知)。 Arrays.Sort只有这样的工作与对象而不是原始。代码生成您想要的输出。
主要课程:
public class Lab14d {
public static void main(String[] args) {
Double[] g = { 100.00d, 90.00d, 85.00d, 72.5, 95.6 };
Double[] c = { 50.0, 100.0, 80.0 };
Double[] a = { 93.4, -90.0, 90.0 };
Double[] d = { 1.00d, 2.00d, 3.00d, 4.00d, 5.00d, 6.00d, 7.00d, 8.00d, 9.00d };
Grades.SortArray(g);
System.out.println("Average = " + String.format("%.2f", Grades.GetAverage(g)));
System.out.println();
Grades.SortArray(c);
System.out.println("Average = " + String.format("%.2f", Grades.GetAverage(c)));
System.out.println();
Grades.SortArray(a);
System.out.println("Average = " + String.format("%.2f", Grades.GetAverage(a)));
System.out.println();
Grades.SortArray(d);
System.out.println("Average = " +String.format("%.2f", Grades.GetAverage(d)));
System.out.println();
}
}
等级:
import java.util.Arrays;
import java.util.Collections;
public class Grades {
public static void SortArray(Double[] array) {
Arrays.sort(array, Collections.reverseOrder());
for (int i = 0; i < array.length; i++) {
System.out.println("Grade " + i + " :: " + array[i]);
}
}
private static double GetSum(Double[] array) {
double sum = 0.00d;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
return sum;
}
public static double GetAverage(Double[] array) {
double total = GetSum(array);
return total / array.length;
}
}