0

我需要计算 to 的乘法,grade[0]然后percentage1[0]打印结果。有人能帮我吗?

实验室考试.java

import java.util.*; 
public class LaboratoryExam {

  static Scanner glad=new Scanner(System.in);
  static double grades[]=new double[5];
  static double percentage1[]=new double[5];
  static double comp[]=new double[5];
  static double sum=0;

  public static void main(String[] args) {



    System.out.print("Enter 5 grades: ");

    for(int i=0; i<grades.length; i++){

      grades[i]=glad.nextDouble();
    }


    Percentage();
    compute(grades,percentage1);
    System.out.println("\nSum is: " + sum);
  }

  public static double[] Percentage(){
    double Percentage;
    System.out.print("\nEnter 5 Percentage: ");

    for(int p=0; p<percentage1.length; p++)
      percentage1[p]=glad.nextDouble();

    return percentage1;
  }

  public static double compute(  double[] grades,  double[] percentage1 ){

    for(int i=0; i<comp.length;i++){

      double comp=grades[0]*percentage1[1];
      System.out.println("Equivalent: "+sum);
      double sum=comp+comp;
    }
    return sum;
  }

}
4

3 回答 3

0

这几乎是好的。确保在循环之外声明 sum 变量,for以便在循环的每次迭代中保留其值。还可以使用您的数组索引来访问正确的值。将其更改为:

public static double compute(  double[] grades,  double[] percentage1 ){
  double sum = 0;
  for(int i=0; i<comp.length;i++){

    comp[i]=grades[i]*percentage1[i];
    System.out.println("Equivalent: "+comp[i]);
    sum += comp[i];
  }
  return sum;
}

此外,在您的主要方法中,使其:

sum = compute(grades,percentage1);
于 2013-04-29T14:13:27.203 回答
0

在您的方法中,compute您将获得所有迭代的乘积。相反,您应该使用循环中所述的索引 上的元素:grades[0]percentage1[1]ifor

for(int i=0; i<comp.length;i++) {
    double comp = grades[i]*percentage1[i];

此外,您正在计算错误的总和:

for(int i=0; i<comp.length;i++) {
    double sum=comp+comp;
}

在这里,您正在遮蔽static double sum之前声明的内容,因此在执行return sum;. 您应该使用sum类中声明的变量:

for(int i=0; i<comp.length;i++) {
    //note: no re-declaration of sum variable
    //also fixed the sum calculation
    sum += comp;
}

最后,您的代码将如下所示:

for(int i=0; i<comp.length;i++) {
    double comp=grades[i]*percentage1[i];
    comp[i] = comp;
    sum += comp;
    System.out.println("Equivalent: "+sum);
}
return sum;
于 2013-04-29T14:13:28.647 回答
0

您应该使用grades[i]和进行乘法运算percentage1[i]。在这里,您只是一遍又一遍地乘以相同的数字。尝试这个:

double comp=grades[i]*percentage1[i];

另外,我认为您打印的内容不正确,因为您似乎想打印乘法的结果。试试这个:

System.out.println("Equivalent: "+ comp);

最后,我认为最好在 for 中声明 comp 和 sum :

public static double compute(  double[] grades,  double[] percentage1 ){
    double comp;
    double sum;
    for(int i=0; i<comp.length;i++){
        comp=grades[0]*percentage1[1];
        System.out.println("Equivalent: "+sum);
        sum=comp+comp;
    }
    return sum;
}
于 2013-04-29T14:23:20.863 回答