我有2个数组,每个数组包含6个不同的双数。添加两个数组以获得每个元素的平均值。然后生成6个平均数(数组A和数组B的每个元素被添加然后分割)现在我需要添加计算出的那6个平均数,并得到这些平均数加上并除以6的结果。(对不起,如果我困惑的人)我不知道如何开始它。 这是我的代码
public static void main (String [] args)
{
double examMarks [] = {50,40,60,80,70,11};
double courseworkmarks [] = {65,49,58,77,35,40};
System.out.println ("These are the exam marks and the course work marks");//First row is the exam marks, second row is the course work marks
computeMarks (examMarks);
computeMarks1 (courseworkmarks);
computeResults(examMarks, courseworkmarks);
}
public static void computeMarks(double[] examMarks)
{
for (int row=0;row<examMarks.length;row++){
System.out.print (examMarks[row] +"\t");
}
System.out.println();
}
public static void computeMarks1(double[] courseworkmarks)
{
for (int row=0;row<courseworkmarks.length;row++){
System.out.print (courseworkmarks[row] +"\t");
}
System.out.println();
}
public static void computeResults(double[] examMarks, double[] courseworkmarks)
{
double avgMarks[] =new double[examMarks.length];
System.out.println ("The total average of each module is ");
for(int i=0;i<avgMarks.length;i++){
int cwWeighting=40;
avgMarks[i]=(examMarks[i]*(100-cwWeighting)+courseworkmarks[i]*cwWeighting)/100;
System.out.print(avgMarks[i] + "\t" );
}
}
这是我到目前为止所尝试的:
public static computeStageMarks()
{
double totalMarks;
totalMarks = (avgMarks [])/6;
if (totalMarks<35)
{
System.out.println ("Failed" + totalMarks);
}
if (totalMarks>=40)
{
System.out.println ("Passed" + totalMarks);
}
if (totalMarks==35)
{
System.out.println ("Passed by compensation" + totalMarks);
}
但它无法正常工作。是这个案件的==吗?我也需要它从最后一种方法识别avgMark。我该怎么做?
答案 0 :(得分:0)
要在此方法中使用avgMarks
,您需要将其作为参数传递。
public static computeStageMarks(double[] avgMarks)
要计算平均值,你需要迭代数组,计算总和然后计算平均值。
double totalMarks;
double sum = 0.0;
for(double avg : avgMarks ){
sum += avg;
}
totalMarks = sum/6.0;
答案 1 :(得分:0)
第一个问题:平均6个数字
您不能使用这样的数组:
totalMarks = (avgMarks [])/6;
你要做的是
double totalMarks = 0;
然后遍历数组,逐个将所有分数添加到totalMarks
,然后将结果除以6。
第二个问题:如何处理上一个方法的结果:
例如,这可以起作用:
private static double[] computeAverages() {
double[] res = new double[6];
// work with it
return res;
}
private static void doStuff() {
double[] averages = computeAverages();
// now you can use it
}
第3个问题:双打和==运算符
不要使用它。使用双打的典型方法是这样运行:
if (value < 35) {
// ...
} else if (value < 40) {
// ...
} else {
// ...
}
答案 2 :(得分:0)
您需要将avgMarks作为参数传递给函数
public static computeStageMarks(double[] avgMarks)
{
double totalMarks;
然后像这样计算totalMarks
for(int i=0;i<avgMarks.length;i++)
{
totalMarks += avgMarks [i];
}
totalMarks = totalMarks/6;
然后继续
if (totalMarks<35)
{
System.out.println ("Failed" + totalMarks);
}
if (totalMarks>=40)
{
System.out.println ("Passed" + totalMarks);
}
if (totalMarks<40&&totalMarks>=35)
{
System.out.println ("Passed by compensation" + totalMarks);
}