2016-03-24 17 views
0

タイトルは、クリックする人のために十分に詳細に出しにくかったが、本質的に問題はこれです。それは、各学生の平均を出力し、enter image description here別のarraylist [s]行の行からarraylist [s]を構築する

は、各入力の下での出力を無視し、私のテストのthats: ユーザーは、彼らが

。写真は、それは、本質的にどのように動作するかである必要があり、学生の金額を入力します。私は必要なもの

は、各テストの平均値を得ることですテストは、入力行で、別名10,12は、テスト1と11,13でテスト2であり、私は私がオブジェクトを持っている平均値

を印刷しますテストと学生のために、私は各ラインの最初を取得する方法がわからないので、最終的に学生のアイテムを印刷平均を取得することができましたが、テストではありません。

enter image description here

+3

ソースコードを実際のコードとして追加して、回答を検証するために使用してください。 – Philipp

+0

ええ、申し訳ありませんが、私は今すぐ自分の答えを得ることができました。 – Cacoon

答えて

1

申し訳ありませんが、みんなは私の質問は不明であったが、私はそれを得ることができました。 これは私の答えです。

for(int i = 0; i != testCount;i++) { 
     Test t = new Test(i); 
     ArrayList temp = new ArrayList(); 
     for(Student stu: students) { 
      temp.add(stu.getMarks().get(i).toString()); 
     } 
     t.setTests(temp); 
     tests.add(t); 
    } 
+0

必要に応じて、あなた自身の回答を受け入れることができます。 – dwjohnston

0

次は、すべての学生があなたはおそらく一人の学生が他よりも多くのテストをとっている可能性のある問題に実行しようとしているすべてのテスト

... 
ArrayList tempM = new ArrayList(); 


for(int j = 0; j != s.length;j++ { 
    Double mark = Double.parseDouble(s[j].toString()) 
    tempM.add(mark); 
    Print(tempM.get(j).toString()); 
    stu.setMarks(tempM); 

    Test test = null; 
    if (tests.length < testCount) { 
     test = new Test(); 
     tests.add(test); 
    } else { 
     test = tests.get(j); 
    } 
    // unknown ... test.addMark(mark)? test.setMark(stu, mark)? ... something 
} 
0

を取ると仮定しています。すなわち、 2番目の生徒に11 22 33と入力してから10 20 30 40を入力するとどうなりますか?あなたが対応するために、あなたのソリューションを変更する必要があります - 一部の学生が他よりもより多くのテストを行う場合

for (int i = 0; i<students.get(0).length; i++){ //Loop over the number of tests 
    int total = 0; 
    for (Student student : students){    //Loop over students 
     total += student.getMarks[0];    //Add the value for that test result for that student 
    } 
    Print("results for test " + i + ": " + total/students.size()); //print average 
} 

:すべての学生がテストの同じ数を取ると仮定

シンプルなソリューション、。

関連する問題