5.1初识数组,5.2创建数组,5.3数组的元素,5.4数组变量, 5.5投票统计,5.6遍历数组(for--each),5.7素数,5.8二维数组

5.1初识数组

目标:输入一串数字,计算其平均数,输出大于平均数的数字

public static void main(String[] args) {
	Scanner in = new Scanner(System.in);
	int x=0;
	int cnt=0;
	double sum = 0;
	int[] number = new int[100];//定义数组
	x = in.nextInt();
	
	while( x!= -1)
	{
		number[cnt] = x;
		sum = sum+x;
		cnt++;
		x = in.nextInt();
	}
	if( cnt>0 )
	{
		double average = sum/cnt;//计算平均数
		for( int i=0;i<cnt ;i++)
		{
			if( number[i]>average)
			{
				System.out.println(number[i]);//大于平均数的数字输出
			}
		}
		System.out.println(sum/cnt);//平均数
	}
	in.close();
}

5.2创建数组

请添加图片描述

5.3数组的元素

请添加图片描述

public static void main(String[] args) {
	Scanner in = new Scanner(System.in);
	int cnt;
	cnt=in.nextInt();//输入几个数字
	double sum = 0;
	if( cnt>0 )
	{
		int[] number = new int[cnt];//定义数组,cnt为变量,不用担心下标溢出

		for( int i=0; i<cnt ; i++)
		{
			number[i] = in.nextInt();
			sum = sum+number[i];
		}
		
		double average = sum/cnt;
		
		for( int i=0 ; i<cnt ;i++)
		{
			if( number[i]>average)
			{
				System.out.println(number[i]);//大于平均数的数字输出
			}
		}
		System.out.println(sum/cnt);//平均数
	}
	in.close();
}

请添加图片描述

请添加图片描述

5.4数组变量

请添加图片描述

  • 将a1的地址赋给a2(即a1,a2共同管理a1所管理的数组)
  • 第一个循环中,a2的数组中每个数都加1(a1的数组中每个数都加1)
  • 输出结果:2 3 4 5(a1,a2都是)

请添加图片描述

复制数组

  • 采用遍历的方法

请添加图片描述

5.5投票统计

请添加图片描述

public static void main(String[] args) {
	Scanner in = new Scanner(System.in);
	int x;
	int [] number = new int[10];//10个数组用来记录0-9这十个数出现的次数。
	//定义数组时没有赋初值,那么默认初值为0
	x = in.nextInt();
	
	while(x!=-1)
	{
		if( x>=0 && x<=9 )
		{
			number[x] ++;
		}
		x = in.nextInt();
	}
	for(int i=0 ; i<number.length ; i++)
	{
		System.out.println(i+"出现了"+":"+number[i]+"次");
	}
	in.close();
}

5.6遍历数组

目标:输入一个数字,看数组中哪个数与其相等。
请添加图片描述

for–each循环
请添加图片描述
对于数组date中的每一个元素,循环的每一轮将其拿出作为一个k。
1:k=date【0】
2;k=date【1】

5.7素数

  1. 改进:去掉偶数,从3到x-1开始判断
  2. 改进:去掉偶数,从3到sqrt(x)
  3. 改进:构造素数表
    请添加图片描述

public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		int[]primes = new int[50];
		primes[0] = 2;
		int cnt = 1;
		
		MAIN_LOOP://命名
		for(int x=3; cnt<primes.length ;x++)//50位的素数表
		{
			for(int i=0; i<cnt; i++)//遍历50个已经找到的素数
			{
				if( x % primes[i]==0)//能整除,不是素数
				{
					continue MAIN_LOOP;//跳出最近的for循环,进入名为MAIN_LOOP的for循环
				}
			}
			primes[cnt++] = x;//找到新的素数,放入数组
		}
		for(int k : primes )//遍历
		{
			System.out.print(k+" ");
		}
		System.out.println();

	in.close();
}

新方法
请添加图片描述
请添加图片描述

5.8二维数组

请添加图片描述
请添加图片描述
请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值