実技(Javaプログラミング実習1)⑦

1.配列とは
2.配列とfor文
1~100乱数を指定個生成しその合計と平均を求める
[実行例]
乱数をいくつ生成する>1000 [enter]
合計は50324,平均は50.3です。

[解答例]

public class Sample{
	public static void main(String[] args){
		System.out.print("乱数をいくつ生成する>");
		int num=new java.util.Scanner(System.in).nextInt();
		int[] nums=new int[num];
		
		//配列に1~100の乱数をnum個代入する処理
		for(int i=0;i<nums.length;i++){
			nums[i]=new java.util.Random().nextInt(100)+1;
		}
		//合計を求める処理
		int sum=0;
		for(int i=0;i<nums.length;i++){
			sum+=nums[i];
		}
		//平均を小数点第2位で切り捨てて小数点一桁で求める
		double ave=((int)(sum/(num*0.1)))/10d;
		
		//出力
		System.out.println("合計は"+sum+",平均は"+ave+"です。");

	}
}

3.配列問題(ダイス)
サイコロを振って、その合計を求める処理をかけ。
ただし、ぞろ目の場合は点数が2倍される。
[実行例1]
サイコロいくつ振る>3 [enter]
4
2
3
得点は9点

[実行例2]
サイコロいくつ振る>3 [enter]
4
4
4
得点は24点

[解答例]


public class Sample{
	public static void main(String[] args){
		System.out.print("サイコロをいくつ振る>");
		int num=new java.util.Scanner(System.in).nextInt();

		int[] nums=new int[num];

		for(int i=0;i<nums.length;i++){
			nums[i]=new java.util.Random().nextInt(6)+1;
		}

		int sum=0;
		boolean isSame=true; //ぞろ目かどうかのフラグ
		for(int i=0;i<nums.length;i++){
			System.out.println(nums[i]);
			sum+=nums[i];
			if(i != 0 && (nums[i] != nums[i-1])){
				isSame=false;
			}
		}
		if(num > 1 && isSame){
			sum*=2;
		}
		System.out.println("得点は"+sum+"点です");

	}
}

4.占いアプリの作成
占いアプリを作成せよ。なお運勢は
大吉、中吉、吉、凶とする。
[実行例]
今日の運勢を占うよ。
エンターを押してね> [enter]
今日の運勢は大吉です!

[解答例]

public class Sample{
	public static void main(String[] args){
		System.out.println("今日の運勢を占うよ。");
		System.out.print("エンターを押してね>");
		new java.util.Scanner(System.in).nextLine();
		String[] fortunes={"大吉","中吉","吉","凶",};
		int index=new java.util.Random().nextInt(fortunes.length);
		System.out.println("今日の運勢は"+fortunes[index]+"です!");
	}
}												


5.配列の練習