- 実現したいこと
整数型の配列変数dataを作成し、以下の条件のとおりの初期値を入れるものとする。
大きさは、10
値は、1から10の乱数
このとき、実行例のように、値をすべて表示し、その中の最大値と最小値と平均値を表示するようにしなさい。
実行結果の例
10 6 2 4 3 5 9 9 1 3
最大値 : 10
最小値 : 1
平均値 : 5
2.現在のプログラム
package Problem5; public class Priblem5_6 { public static void main(String[] args){ int date[] = new int[10]; for(int i = 0;i < date.length; i++){ date[i] = (int)(Math.random()*10)+1; System.out.print(date[i] + " "); } int max = date[0]; int min = date[0]; for(int i=1; i < date.length; i++){ if(date[i] > max){ max = date[i]; } if(date[i] < min){ min = date[i]; } } System.out.println(); System.out.println("最大値 :"+ max); System.out.println("最小値 :" + min); } double [] d = new double[10]; int sum; double avg; sum = 0; for(int i = 0; i < date.length; i++){ sum = sum + i; } avg= sum / 10.0; System.out.println("平均値 :" + avg); } }
現在のエラーメッセージ
Exception in thread "main" java.lang.Error: Unresolved compilation problem: at Problem5.Priblem5_6.main(Priblem5_6.java:5)
どこで初期化するべきですか
"3.最大値まではあっていると思う"
って、正しい値が表示されることを確認した、という意味ですか?
```
package Problem5;
public class Priblem5_6 {
public static void main(String[] args){
int num[] = new int[10];
for (int i =0;i < num.length ; i++){
num[i]=(int)(Math.random()*10)+1;
}
for(int i =0;i < num.length;i++){
System.out.print(num[i] + " ");
}
System.out.println();
System.out.print("最大値 :");
int max =0;
for(int i =0;i < num.length ;i++){
if(num[i] > max){
max = num[i];
}
}
System.out.print(max + " ");
}
```
ここまでの結果は10個の乱数と最大値の値を確認できてます。
失礼ですが、このコードはどこから持ってきたのでしょうか。ご自分で考えたのでしょうか。
それともどこからかのコピペ(手打ちだとしても)でしょうか。
仮に前者(= 自分で考えた)であればあり得ないようなミスをしていますから。
プログラムの例をみながら自分で書きました
つまり、答え(だと思われるもの)を見て手打ちでってことですか?
サンプルプログラムを自分で今回の場合に合うように変えた感じです
そりゃ、うまくいくはずないですね。
『英語版の羅生門の台本を使って、ところどころいじりましたが、友人に読ませると「この小説意味不明」と一蹴されました。なぜなのでしょうか』ぐらいの無茶苦茶さです。
英語だからと言って考え無しに闇雲にいじったらそりゃ意味不明になるでしょ。
それと同義のことをしています。
とりあず、私の回答にあるように、「エラーメッセージを読みましょう」です。
そこからです。
エラーメッセージは初期化されてないという意味です
いや、だから、「省略せずに」書きましょう。
省略しても、回答者はそのメッセージを見ていないのだからわかるわけありません。
確かに実際にコンパイラに通せばいいですが、本来はそれは質問者さんがやるべきことです。
仮に『初期化されていないという意味です』というふうに省略したら回答者は『んじゃあ、初期化すればいいんじゃね?』としか言えません。
それで質問者さんが分かるのならここで質問なんてしないはずです。
現に他の方に『そのエラーメッセージ直せばいいんじゃね?』と言われていますね。
わかりやすい説明をしてもらいたいなら『出来る限りわかりやすい説明をすべき』です。
(的確に説明せよとは言っていません。「心掛けよ」です)
それと、質問は編集できるので編集しましょう。
編集しました。
コードは変えていませんよね?
変えてません
5行目はなにになっていますか?
public static void main(String[] args){
です。
止めはしませんが、現状で、手取り足取りやってもあまり意味がないと思いますよ。
基礎からやってたら誰でもできる問題なので、これができないということは基礎を飛ばして勝手に先に進んでいるように思います。
教科書を読み直してください。
答えは全部そこにあります。
回答3件
あなたの回答
tips
プレビュー