コメントステップ4で、現在の配列要素をsumに追加しようとしています。現在の配列要素をmax_testと比較し、大きければ変数max_testに保存します。現在の要素をmin_testと比較します。小さい場合はmin_testに保存します。しかし、私はエラー配列でifステートメントを使用する
Grades5.java:55: error: bad operand types for binary operator '>'
if (grades[r] > grades[max_test])
^
first type: int[]
second type: int[]
Grades5.java:57: error: bad operand types for binary operator '<'
if (grades[r] < grades[min_test])
^
first type: int[]
second type: int[]
Grades5.java:59: error: bad operand types for binary operator '+'
sum += grades[r];
^
first type: int
second type: int[]
3 errors
コードを取得し続ける:
import java.util.Scanner;
public class Grades5
{
public static void main(String[] args)
{
int[][] grades = {
{ 87, 96, 100},
{ 68, 75, 72},
{ 99, 100, 95},
{100, 96, 70},
{ 75, 60, 79},
};
int how_many_grades = grades.length * grades[0].length;
// -----------------
// Output the grades
// -----------------
System.out.print(" ");
for (int i = 0; i < grades[0].length; i++)
System.out.print("Test " + (i + 1) + " ");
System.out.println("Average");
for (int r = 0; r < grades.length; r++)
{
int sum = 0; // Sum of one student's tests
// -------------------
// Process one student
// -------------------
System.out.print("Student " + (r + 1) + " ");
for (int c = 0; c < grades[r].length; c++)
{
System.out.printf("%6d ", grades[r]); // Step 1
//sum += grades[c]; // Step 2
}
System.out.printf("%7.2f\n", (double)sum/grades[r].length);
}
// ----------------
// Output a summary
// ----------------
int max_test, // Maximum test score
min_test, // Minimum test score
sum = 0; // Sum of all student tests
max_test = min_test = grades[0][0]; // Step 3
for (int r = 0; r < grades.length; r++)
{
// -------------------
// Process one student
// -------------------
for (int c = 0; c < grades[r].length; c++)
{
// Step 4
if (grades[r] > grades[max_test])
max_test = c;
if (grades[r] < grades[min_test])
min_test = c;
sum += grades[r];
}
}
System.out.println("Highest test score: " + max_test);
System.out.println("Lowest test score: " + min_test);
System.out.printf("Average test score: %.1f\n",
(double)sum/how_many_grades);
}
}
を比較するときの成績は成績が[max_test] 'であり、何それはあなたのエラーメッセージから意味'何 'グレード[R]について考え'と2部を必要とするので、これは動作します。これは 'int []> int []'を実行しようとしていると言います。本質的に2つの整数配列を比較します。 – nickb
2次元配列であるため、等級[r]ではなく等級[r] [c]でなければなりません。 –
元の問題を解決した答えが得られたという理由だけで、質問を簡単に変更することはできません。あなたが困っていると思ったら、答えを受け入れて別の質問をしてください。しかし、コミュニティが本当に問題を抱えていないことに気をつけてください。 – displayname