大数据-java基础-第06章 数组实例练习

1.小明要去买一部手机,他询问了4家店的价格,分别是2800元,2900元,2750元和3100元,显示输出最低价(要求使用数组)

public class Excercise01 {
	public static void main(String[] args) {
		int a []= new int []{2800,2900,2750,3100};
		int min = a[0];
		for(int i =1;i < a.length;i++) {
			if (a[i] < min) {
				min = a[i];
			}
		}
		System.out.print("4家店铺的最低价为:"+min);
	}
}

2.某班有6名学生,通过键盘输出每个学生成绩,(成绩自定义)
①.输入该班每个学生的成绩
②.计算并输出该班的总分和平均分
③.输出该班学生的最高分和最低分及其相应的下标
④.输入一个成绩,查看该班有没有该成绩,有则输出其下标,没有则输出无该分数
⑤.对该班学生成绩进行降序排序
⑥.思考:若该班又增加了一名新学生,需要将其成绩添加到数组中,并且要保持增加后的数组依然降序排列(提示:为保证能增加一个新数据,数组长度要定义为7)

public class Excercise02 {
	public static void main(String[] args) {
		//1.输入该班每个学生的成绩
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入班级同学数目:");
		int num = sc.nextInt();
		int i=0;
		int score [] = new int[num];
		while (i < num) {
			System.out.print("第"+(i+1)+"位学生的成绩为:");
			 score[i] =sc.nextInt();
			 i++;
		}
		//2.计算并输出该班的总分和平均分
		int sum =0;
		double avg;
		for(int a = 0; a <6;a++) {
			sum = score[a]+sum;
		}
		System.out.print("该班的总分为:"+sum);
		avg = sum / score.length;
		System.out.print("\n"+"该班的平均分为:"+avg);
		//3.输出该班学生的最高分和最低分及其相应的下标
		int max = score[0];
		int countmax = 0;
		for (int b = 1;b < score.length;b++) {
			if(score[b] > max) {
				max = score[b];
				countmax = b;
			}
		}
		System.out.print("最大成绩为:"+max);
		System.out.println("最大成绩的下标为:"+countmax);
		int min = score[0];int countmin = 0;
		for(int k = 1;k < score.length;k ++) {
			if(score[k] > min) {	
			}else {
				min = score[k];
				countmin = k;
			}
		}
		 	System.out.print("\n"+"最小成绩为:"+min);
		 	System.out.println("最小成绩的下标为:"+countmin);
		 	
		//4.输入一个成绩,查看该班有没有该成绩,有则输出其下标,没有则输出				无该分数
			Scanner sc1 =new Scanner (System.in);
			System.out.print("\n"+"请输入查询的成绩:");
			int score1 = sc1.nextInt();
			int count =0;
			//boolean flag = true;
			for(i = 0 ;i < score.length;i++) {
				if(score1 == score[i]) {
					count = i;
					System.out.print("查询成绩的下标为:"+count);
				}
			}
			//5.对该班学生成绩进行降序排序
			for(i=0;i<6;i++) {
				for(int j=0;j<score.length-1;j++) {
					if(score[j] < score[j+1]) {
						int a =score[j];
						score[j]=score[j+1];
						score[j+1]= a;
					}
				}
			}
			for(i=0;i<6;i++) {
				System.out.print("学生的成绩有大到小为:"+score[i]);
			}
		}	
	}
	//6.若该班又增加了一名新学生,需要将其成绩添加到数组中,并且要保持增加后的数组依然降序排列(提示:为保证能增加一个新数据,数组长度要定义为7)
	public class Excercise0206 {
		public static void main(String[] args) {
		canner sc = new Scanner(System.in);
			int score []= new int [6];
			for (int i = 0 ; i < score.length;i ++) {
				System.out.print("请输入第"+(i+1)+"的同学成绩为:");
				score[i] = sc.nextInt();
			}
			for(int i =0 ; i <score.length; i++) {
				for (int j = 0;j < score.length-1;j++) {
					if(score[j]<score[j+1]) {
						int temp =score[j];
						score[j] = score[j+1];
						score[j+1] = temp;
					}
				}
			}
			System.out.print("降序为: ");
			for(int n :score) {
				System.out.print(n+" ");
			}
				int	newScore[] = score.clone();
				int newScore1[] = new int [newScore.length+1];
				System.out.print("\n新建数组:\n");
				for(int i =0;i<newScore.length;i++) {
					newScore1[i]=newScore[i];
					System.out.print(newScore1[i]+" ");
				}
				
				System.out.print("\n添加同学的成绩为:");
				int num =sc.nextInt();
				int intep = 0;
				System.out.println("同学成绩插入位置的下标为:");
				for(int j =0;j<newScore1.length;j++) {
					if(num<newScore1[j] && num >newScore1[j+1]) {
						intep = j+1;
					}
				}
				System.out.print(intep);
				for(int j =newScore1.length-1 ; j>intep;j--) {
					newScore1[j]=newScore1[j-1];
			 }
					newScore1[intep]=num;
				System.out.println("\n插入后的数组排序:");
				for(int b :newScore1) {
					System.out.print(b+" ");
				}
	}	

}

3.扩展:定义一个有序的数组,随机删除某个数,判断是否存在这个数,若存在,删除后保持原来排序,若不存在,保持原数组不变。

public class Excercise020601 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
  //定义数组,铲除某个数字(升序)
		Scanner sc =new Scanner(System.in);
		System.out.print("请输入你要排序值的个数");
		int num=sc.nextInt();
		int arr1[]=new int[num];
		for(int a =0;a<num;a++) {
			System.out.print("请输入第"+(a+1)+"个值");
			arr1[a]=sc.nextInt();
			
		}
		System.out.print("输入后的原始数据为:\n");
	
		for(int arr:arr1) {
			System.out.print(arr+" ");
		}
		
		int a1[]=arr1.clone();
		for(int i =0;i<a1.length;i++) {
			for(int j =0; j<a1.length-i-1;j++) {
				if (a1[j]>a1[j+1]) {
					int temp = a1[j];
					a1[j]=a1[j+1];
					a1[j+1]=temp;
				}
			}
			
		}
		System.out.print("\n升序后的结果为:\n");
		for(int a:a1) {
			System.out.print(a+" ");
		}
		//判断是否存在哪个值
		System.out.print("\n请输入你要删除的值\n");
		int b =sc.nextInt();
		int a=-1;
		for(int i =0;i<a1.length;i++) {
			if(b == a1[i]) {
				a =i;
				//System.out.print(a);
			}}
		if(a<0) {
				System.out.print("不存在,无法删除");
			}
		if(a > 0)	{//a=0 时要重新定义
			System.out.print("存在,删除后的数组为\n");
			for(int i =0;i<a1.length-a;i++) {
				for(int d =0;d<a;d++) {
					a1[d] =a1[d];
					System.out.print(a1[d]+" ");
				}
				for(int j =a;j<a1.length-1;j++) {
					a1[j]=a1[j+1];
					System.out.print(a1[j]+" ");
				}
				break;
			}
		}
		if(a==0){
			System.out.print("存在,删除后的数组为\n");
			for (int i =0;i<a1.length-a;i++) {
				for(int j =a;j<a1.length-1;j++) {
					a1[j]=a1[j+1];
					System.out.print(a1[j]+" ");
				}
				break;
			}
		}
	}
		
}

4.校园歌手大赛,有10评委,请设计一个程序,输入10位评委的打分,然后去掉一个最高分和一个最低分,余下8位评委的平均分将会是该选手的得分,
输出该选手的得分。

public class Excercise03 {
	public static void main(String [] args){
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入评委数量:");
		int num = sc.nextInt();
		int score []= new int [num];
		int sum=0;
		double  avg=0;
		for (int i = 0; i < num;i++) {
			System.out.print("请输入第"+(i+1)+"位评委的成绩:");
			score [i] = sc.nextInt();
			sum += score[i];
		}
			System.out.print("几位评委的总成绩为:"+sum);
			int max =score[0];
			for(int i = 1;i <num;i++) {
				if(max < score[i]) {
					max = score[i];
				}
			}
			int min =score[0];
			for(int i = 1;i <num;i++) {
				if(min > score[i]) {
					min = score[i];
			}
		}
		avg = (sum-min-max)/((score.length)-2);
		System.out.print("\n"+"选手的最后得分为:"+avg);
	}
	
}

5.要求从键盘输入10个整数,然后对这10个数进行降序排序并输出。
(2)将数组反序(采用冒泡排序法)

public class Excercise04 {
	public static void main(String[] args) {
		Scanner sc = new  Scanner(System.in);
		int a[]= new int[10];
		for (int i =0;i <=9;i++) {
			//int a[]= new int[10];
			 System.out.print("第"+(i+1)+"个整数为:");
			 a [i] =sc.nextInt();
		}
		for (int d =0;d < a.length;d++) {
			for(int b =0;b <a.length-1;b++ ) {
				if(a[b]<a[b+1]) {
					int c =a[b];
					a[b] =a[b+1];
					a[b+1]=c;
				}
			}
		}
		System.out.print("降序为:");
		for (int d =0;d < a.length;d++) {
			System.out.print(a[d]+",");
		}
		System.out.print("\n"+"升序为:");
		for (int d =0;d < a.length;d++) {
			for(int b =0;b <a.length-1;b++ ) {
				if(a[b]>a[b+1]) {
					int c =a[b];
					a[b] =a[b+1];
					a[b+1]=c;
				}
			 }
		}
		for (int d =0;d < a.length;d++) {
			System.out.print(a[d]+",");
	 }	
   }
 }

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值