java--数组练习

求数组的最大、最小值、总和、平均值以及数组的复制、反转、遍历

public class arr {

	public static void main(String[] args) {
		int arr[] = new int[] {2,4,5,7,9,23,-21,0,99,85};
		//最大值
		int max=arr[0];
		for(int i=1;i<arr.length;i++) {
			if(max<arr[i]) {
				max=arr[i];
			}
		}
		System.out.println("最大值为:"+max);
		
		//最小值
		int min=arr[0];
		for(int i=1;i<arr.length;i++) {
			if(min>arr[i]) {
				min=arr[i];
			}
		}
		System.out.println("最小值为:"+min);
		
		//总和
		int sum=0;
		for(int i=0;i<arr.length;i++) {
			sum+=arr[i];
		}
		System.out.println("总和为:"+sum);
		
		//平均值
		int avg=0;
		avg=sum/arr.length;
		System.out.println("平均值为:"+avg);
		
		//数组的复制
		    //遍历arr
		    //for(int i=0;i<arr.length;i++) {
			    //System.out.print(arr[i]+"\t");
		    //}
		    //把arr复制给arr1
		    int arr1[]=new int[arr.length];
		    for(int i=0;i<arr1.length;i++) {
			    arr1[i]=arr[i];//复制arr的值,不会更改arr的值
		    }
		    System.out.println();
		    //遍历arr1
		    //for(int i=0;i<arr1.length;i++) {
			    //System.out.print(arr1[i]+"\t");
		    //}
		  
		//数组的反转
		for(int i=0;i<arr.length/2;i++) {
			int temp=arr[i];
			arr[i]=arr[arr.length-1-i];
			arr[arr.length-1-i]=temp;
		}
		//数组的遍历
        for(int i=0;i<arr.length;i++) {
        	System.out.print(arr[i]+"\t");
        }
	}

}

运行结果
在这里插入图片描述
排序

public class arr {

	public static void main(String[] args) {
		int arr[] = new int[] {2,4,5,7,9,23,-21,0,99,85};
		//冒泡排序 从大到小
        for(int i=0;i<arr.length-1;i++) {
        	for(int j=0;j<arr.length-1-i;j++) {
        		if(arr[j]<arr[j+1]) {
        			int temp=arr[j];
        			arr[j]=arr[j+1];
        			arr[j+1]=temp;
        		}
        	}
        }
        System.out.println("冒泡从大到小排序后:");
 for(int i=0;i<arr.length;i++) {
        	System.out.print(arr[i]+"\t");
        }

        System.out.println();

        //直接选择排序 从小到大
        for(int i=0;i<arr.length-1;i++) {
        	int t=i;//默认i处是最小的
        	for(int j=i;j<arr.length;j++) {
        		//一旦在i处发现比其小的元素,就记录那个元素的下标
        		if(arr[t]>arr[j]) {
        			t=j;
        		}
        	}
        	if(t!=i) {
        		int temp=arr[t];
        		arr[t]=arr[i];
        		arr[i]=temp;
        	}
        }
        System.out.println("直接从小到大排序后:");
        
		//数组的遍历
        for(int i=0;i<arr.length;i++) {
        	System.out.print(arr[i]+"\t");
        }
        
        
	}

}

运行结果
在这里插入图片描述

二维数组之杨辉三角

/*
1
1  1
1  2  1
1  3  3  1
1  4  6  4  1
1  5  10 10 5  1
打印10行杨辉三角
1、第一行1个元素,第n行n个元素
2、每行第一个元素和最后一个元素都是1
3、从第3行开始,除第一和最后一个元素
y[i][j]=y[i-1][j-1]+y[i-1][j]
*/
public class yang {

	public static void main(String[] args) {
		int[][] num = new int[10][];
		//初始化二维数组
		for(int i=0;i<num.length;i++) {
			num[i]= new int[i+1];
		}
		//显式的为二维数组的每个元素赋值
		for(int i=0;i<num.length;i++) {
			for(int j=0;j<num[i].length;j++) {
				num[i][0]=num[i][i]=1;
				if(i>1&&j>0&&j<i) {
					num[i][j]=num[i-1][j]+num[i-1][j-1];
				}
			}
		}

		
		//遍历二维数组
		for(int i=0;i<num.length;i++) {
			for(int j=0;j<num[i].length;j++) {
				System.out.print(num[i][j]+"\t");
			}
			System.out.println();
		}
	}

}

运行结果
在这里插入图片描述
学生成绩及等级

/*
从键盘输入学生成绩,找出最高分,并输入学生成绩等级
成绩>=最高分-10 等级为A
成绩>=最高分-20 等级为B
成绩>=最高分-30 等级为C
其余 等级为D
*/
import java.util.Scanner;
public class test3 {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	//1、创建Scanner的对象,并从键盘获取学生的个数n
	Scanner s = new Scanner(System.in);
	System.out.println("请输入学生的个数:");
	int count = s.nextInt();
	//2、根据输入学生的个数n,创建一个长度为n的int型的数组
	int[] scores = new int[count];
	int maxscore = 0;
	//3、依次从键盘获取n个学生的成绩,并赋给相应的数组元素,并获取n个学生中的最高分
	System.out.println("请输入"+count+"个成绩:");
	for(int i = 0;i<scores.length;i++) {
		int score = s.nextInt();
		scores[i]=score;
		if(scores[i]>maxscore) {
			maxscore=scores[i];
		}
	}
	//根据学生成绩划分相应等级,并输出
	System.out.println("最高分为:"+maxscore);
	char level;
	for(int i = 0;i<scores.length;i++) {
		if(scores[i]>=maxscore-10) {
			level='A';
		}else if(scores[i]>=maxscore-20) {
			level='B';
		}else if(scores[i]>=maxscore-30) {
			level='C';
		}else {
			level='D';
		}
		System.out.println("student "+i+" score is "+scores[i]+" grade is "+level);
	}
}

}
运行结果
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值