このコードだとエラーが起きます
sum_studentとsum_subjectの部分が間違ってるのはわかるのですが
どう書いたらいいのかわかりません
教えてくれるとありがたいです
下がjavaの元のコードです
Java
1import java.util.Scanner 2 3class PointTotalization { 4 5 public static void main (String[] args) { 6 Scanner stdIn = new Scanner(System.in); 7 final int NINZU = 6; 8 int[][] point = new int[NINZU][2]; 9 int[] sumStudent = new int[NINZU]; 10 int[] sumSubject = new int[2]; 11 12 System.out.printf("%d人の国語・数学の点数を入力せよ。\n", NINZU); 13 14 for (int i = 0; i < NINZU; i++) { 15 System.out.printf("%2d番...国語:", i + 1); 16 point[i][0] = stdIn.nextInt(); 17 System.out.print(" 数学":); 18 point[i][1] = stdIn.nextInt(); 19 20 sumStudent[i] = point[i][0] + point[i][1]; 21 sumSubject[0] += point[i][0]; 22 sumSubject[1] += point[i][1]; 23 } 24 25 System.out.println("No. 国語 数学 平均"); 26 for (int i = 0; i < NINZU; i++) 27 System.out.printf("%2d%6d%6d%6.1f\n", i + 1, point[i][0], point[i][1],(double)sumStudent[i] / 2); 28 System.out.printf("平均%6.1f%6.1f\n", (double)sumSubject[0] / NINZU, (double)sumSubject[1] / NINZU) 29 } 30}
これが僕が書いたRubyのコードです
エラーは文はこちらです
<class:PointTotalization>': undefined method
+' for nil:NilClass (NoMethodError)
Ruby
1class PointTotalization 2 3 NINZU = 6 4 point = Array.new(NINZU).map{Array.new(2)} 5 sum_student = [NINZU] 6 sum_subject = [2] 7 8 printf("%d人の国語・数学の点数を入力せよ。\n", NINZU) 9 10 i = 0 11 while i < NINZU 12 printf("%2d番...国語:", i + 1) 13 point[i][0] = gets.to_i 14 print " 数学:" 15 point[i][1] = gets.to_i 16 17 sum_student[i] = point[i][0] + point[i][1] 18 sum_subject[0] += point[i][0] 19 sum_subject[1] += point[i][1] 20 i += 1 21 end 22 23 puts "No. 国語 数学 平均" 24 i = 0 25 while i < NINZU 26 printf("%2d%6d%6d%6.1f\n", i + 1, point[i][0], point[i][1], sum_student[i].to_f / 2) 27 i += 1 28 end 29 printf("平均%6.1f%6.1f\n", sum_subject[0]/NINZU, sum_subject[1]/NINZU) 30end 31
とりあえず平均だけだそうと思ったのですが、
class:PointTotalization': undefined method `+' for nil:NilClass (NoMethodError)
となってしまいました
追記sum_kokugo sum_mathが数値型ではなかったため起きたエラーでした
Ruby
1class PointTotalization 2 puts "6人の国語・数学の点数を入力せよ" 3 #point = Array.new(2) 4 #kokugo = point[0] 5 #math = point[1] 6 i = 0 7 while i < 7 8 print "#{i+1}番...国語:" 9 kokugo = gets.to_i 10 print " 数学:" 11 math = gets.to_i 12 sum_kokugo += kokugo 13 sum_math += math 14 end 15 puts "平均 #{sum_kokugo/6} #{sum_math/6}" 16end
こうしたらちゃんと動きました
Ruby
1class PointTotalization 2 puts "6人の国語・数学の点数を入力せよ" 3 i = 0 4 sum_kokugo = 0 5 sum_math = 0 6 while i < 6 7 print "#{i+1}番...国語:" 8 kokugo = gets.to_i 9 print " 数学:" 10 math = gets.to_i 11 sum_kokugo += kokugo 12 sum_math += math 13 i += 1 14 end 15 puts "平均 #{sum_kokugo/6} #{sum_math/6}" 16end
回答1件
あなたの回答
tips
プレビュー