質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

1120閲覧

メソッドを使って配列を使った計算を行いたい

rink

総合スコア80

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1グッド

1クリップ

投稿2019/03/06 14:58

java初心者です。メソッドを使って計算を行いたいのですが、自分にはわからないエラーが出てしまうので解決策を教えていただきたいです。

java

1import java.util.Scanner; 2import static java.lang.System.in; 3import static java.lang.System.out; 4 5class iroiro{ 6 static int max,min,i; 7 8 public static void main(String []args){ 9 Scanner stdIn = new Scanner(in); 10 out.println("最大値と最小値を求めます。"); 11 out.println("要素数:"); 12 int n = stdIn.nextInt(); 13 14 int a[] = new int[n];//箱用意 15 16 for(i = 0; i < n; i++){ 17 out.println("要素番号[" + (i+1) +"]"); 18 a[i] = stdIn.nextInt(); 19 } 20 21 out.println(""); 22 23 24 for(i = 0; i < n; i++){ 25 maxCul(a,n); 26 } 27 out.println("最大値は" + max + "です。\n"); 28 29 min = a[0]; 30 for(i = 0; i < n; i++){ 31 if(min > a[i]){ 32 min = a[i]; 33 } 34 } 35 out.println("最小値は" + min + "です。"); 36 } 37 38 39 public static int maxCul(int a[i],int n){ 40 max = a[0]; 41 for(i = 0; i < n; i++){ 42 if(max < a[i]){ 43 max = a[i]; 44 } 45 } 46 return max; 47 } 48 49 50} 51

エラー

java

1iroiro.java:39: エラー: ']'がありません 2 public static int maxCul(int a[i],int n){ 3 ^ 4iroiro.java:39: エラー: ';'がありません 5 public static int maxCul(int a[i],int n){ 6 ^ 7エラー28

どうかよろしくお願いします。

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Java

public static int maxCul(int a[i],int n){

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

Java

1public static int maxCul(int[] a){

要素数の情報は配列オブジェクト自体が持っているので不要です。
nの代わりに a.length を利用出来ますし、また拡張for文を使えばさらに簡潔になります。

参考:
ループを使わないで配列要素の最大値を求める方法については、次のページで議論されています。
StackOverflow - Finding the max/min value in an array of primitives using Java


max、min、i は全てローカル変数で簡単に代替できるはずです。
staticフィールドとして用意する必要はありません。

投稿2019/03/06 15:03

編集2019/03/06 15:10
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rink

2019/03/06 15:05

なるほど…。 また良いお勉強になりました。。 ありがとうございました!
rink

2019/03/06 15:14

わざわざ追加の解説どうもありがとうございます!! 参考にさせていただきます!
guest

0

エラーを解消するだけなら、次のように変更すれば良さそうです。

java

1 for(i = 0; i < n; i++){ 2 maxCul(a,n); 3 } 4 out.println("最大値は" + max + "です。\n"); 5 ... 6 public static int maxCul(int a[i],int n){ 7 ... 8 }

==>

java

1 max = maxCul(a, a.length); 2 out.println("最大値は" + max + "です。\n"); 3 ... 4 public static int maxCul(int[] a,int n){ 5 ... 6 }

追記
エラー解消だけでなく、全体を少し書き直してみました。

java

1import java.util.Scanner; 2 3public class iroiro { 4 public static void main(String[] args) { 5 Scanner stdIn = new Scanner(System.in); 6 System.out.println("最大値と最小値を求めます。"); 7 System.out.println("要素数:"); 8 int n = stdIn.nextInt(); 9 int a[] = new int[n]; // 箱用意 10 for (int i = 0; i < n; i++) { 11 System.out.println("要素番号[" + (i + 1) + "]"); 12 a[i] = stdIn.nextInt(); 13 } 14 15 System.out.println("最大値は" + maxCul(a) + "です。"); 16 System.out.println("最小値は" + minCul(a) + "です。"); 17 } 18 19 public static int maxCul(int[] a) { 20 if (a.length == 0) { 21 throw new IllegalArgumentException("a.length == 0"); 22 } 23 int max = a[0]; 24 for (int v : a) { 25 if (max < v) { 26 max = v; 27 } 28 } 29 return max; 30 } 31 32 public static int minCul(int[] a) { 33 if (a.length == 0) { 34 throw new IllegalArgumentException("a.length == 0"); 35 } 36 int min = a[0]; 37 for (int v : a) { 38 if (v < min) { 39 min = v; 40 } 41 } 42 return min; 43 } 44}

投稿2019/03/06 22:02

編集2019/03/07 14:34
katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rink

2019/03/07 07:37

ご回答ありがとうございます! とても分かりやすかったです!!! またよろしくお願いします!
rink

2019/03/11 18:05

追記読ませていただきました! これとても便利ですね!!参考にさせていただきます! いつもありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問