java一维数组代码练习

一维数组
计算平均分
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一个一维数组来存储成绩
int[] scores=new int[5];
int sum=0;//计算成绩总和
Scanner input=new Scanner(System.in);
System.out.println(“请输入5位学员的成绩:”);
for(int i=0;i<scores.length;i++) {
scores[i]=input.nextInt();
sum=sum+scores[i];//成绩累加
System.out.print(scores[i]+" ");

	}
	System.out.println();
	//使用for-each遍历
	/*
	 for(int score:scores){
	 sum+=score;
	 }
	 */
	System.out.println("平均分为:"+(double)sum/scores.length);
	
	for(int i=0;i<scores.length;i++) {
		scores[i]=input.nextInt();
		
	}
	
}

结果
在这里插入图片描述
在这里插入图片描述
在进行数组赋值的时候,切记一定需要注意:
1、直接赋值的时候不需要写长度 但是不赋值的话要写长度, int[] scores = new int[];
2、数组下标越界异常 下标超过了数组长度减一的值。
求最大值
在这里插入图片描述
插入数值
有一个降序排列的数组,新增一个数字,也要保持降序排列
注要就是把插入的数值与数组中的值依次进行比较,找到第一个数值比他小的位置,就是他要插入的位置, 然后在把他下标往后面的移动一位。在这里插入图片描述
正常结果

在这里插入图片描述
由于代码还存在bug,本来的数组是需要降序排列好的,否则不能完全按降序输出,代码需要改进。在这里插入图片描述
统计数组中奇偶个数
在这里插入图片描述
在这里插入图片描述
数组倒叙复制输出
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array = new int[10]; //源数组
int[] newArray = new int[10]; //目标数组
for(int i=0;i<array.length;i++){
array[i] = i+1; //元素的值等于其下标+1
}
System.out.println(“原数组:”);
for(int num:array){//增强版的for循环会比简单版的for循环更简单
System.out.print(num+"\t");
}

	         System.out.println();
	         
	         int index = array.length-1;//就是数组的最后一个下标
	         //遍历新数组
	         for(int i=0;i<newArray.length;i++){
	             newArray[i] = array[index--];
	         }
	         
	        System.out.println("新数组:");
	         for(int num:newArray){
	             System.out.print(num+"\t");
	         }
}

结果
在这里插入图片描述
去除数组中的0
int[] list=new int[] {11,0,20,30,40,50,55,0,9,0,4,0};
int count=0;//统计数组中不为0的个数
for(int i=0;i<list.length;i++) {
if(list[i]!=0) {
count++;

		}
		
		
	}
	System.out.println("不为0的个数是:"+count);
	System.out.println();
	int newList[]=new int[count];//用来存放不为0的所有元素
	 
	//将原数组中不为0的元素保存到新数组中
	int j=0;//控制新数组的下标
	for(int i=0;i<list.length;i++) {
		if(list[i]!=0) {
			newList[j++]=list[i];
			System.out.println("第"+j+"个元素是"+list[i]);
			
			
		}
		
	}
	System.out.println();
	//输出新数组
	for(int i=0;i<newList.length;i++) {
		System.out.print(newList[i]+"\t");
		
	}

}

结果
在这里插入图片描述
合并数组
首先需要讲一下静态方法arraycopy():System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是:
public static void (Object src,
int srcPos,
Object dest,
int destPos,
int length)
src:源数组; srcPos:源数组要复制的起始位置;
dest:目的数组; destPos:目的数组放置的起始位置; length:被复制的数组的长度。
注意:src and dest都必须是同类型或者可以进行转换类型的数组。
一定一定要注意参数的个数
此处给出合并三个数组的源码
public static void main(String[] args) {
// TODO Auto-generated method stub
int arrayA[]=new int[] {1,2,3,4,5,6};//创建数组A
int arrayB[]=new int[] {7,18,9,2010,11};//创建数组B
int arrayD[]=new int[] {11,22,39,20};//创建数组D

	int len=arrayA.length+arrayB.length+arrayD.length;//新数组的大小
	int arrayC[]=new int[len];//长度即为两个数组的和
	
	System.arraycopy(arrayA,0,arrayC,0,arrayA.length);//拷贝第一个数组
    System.arraycopy(arrayB, 0, arrayC,arrayA.length, arrayB.length);//拷贝第二个数组
    System.arraycopy(arrayD, 0, arrayC,  arrayA.length+arrayB.length,arrayD.length);//拷贝第三个数组
    java.util.Arrays.sort(arrayC);
    
    for(int x=0;x<arrayC.length;x++) {
    	System.out.print(arrayC[x]+" ");
    	
    }
	
	

}

结果
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值