数组作业

1、定义一个int[] a ={4,2,0,-1,-8,23,9}求数组元素的最大值、最小值、平均数、总和、数组的复制、反转
2、数组元素的排序从键盘输入5个人的年龄,全部输入完后打印。
3、从键盘输入10个整数存入在一个数组中,计算所有元素之和及平均值,并找出最大值和最小值。
4、将数组{4,0,5,8,2,0,6,8,3}中的0去掉后返回一个新数组。
5、现在给出两个数组,数组A:“1,7,9,11,13,15,17,19;数组B:“2,4,6,8,10”两个数组合并为数组C,按升序排列
6、输出1 1 2 3 5 8 13……这样的Fibonacci数列,输出该数列的前20个数字

7、歌手打分:在歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。输入每个评委的评分,求某选手的得分。
8、判断一个数组{1,2,3,1,0}中是否存在相同的元素,如果存在相同的元素则输出“重复”,否则输出“不重复”

package com.zy.java;

import java.util.Arrays;
import java.util.Scanner;

public class ArrayHomework {

	public static void main(String[] args) {
		// test1();
		// test2();
		// test3();
		// test4();
		// test5();
		// test6();
//		test7();
		test6(20);
		int[] b={5,6,8,9,3,2};
		test8(b);

	}

	public static void test1() {
		int[] a = { 4, 2, 0, -1, -8, 23, 9 };
		// 获取数组中的最大值
		int max = a[0];// 保存最大值
		int min = a[0];
		double sum = a[0];
		double ave;
		for (int i = 1; i < a.length; i++) {
			sum += a[i];
			// 遍历得到每一个元素,将此元素与最大值比较,如果它比最大值还大
			// 就赋值给最大值
			if (a[i] > max) {
				max = a[i];
			}
			if (a[i] < min) {
				min = a[i];
			}

		}
		ave = sum / a.length;
		// 结束后max为最大值
		System.out.println("a数组最大值为" + max);
		System.out.println("a数组最小值为" + min);
		System.out.println("a数组的总和为" + sum);
		System.out.println("a数组的平均数为" + ave);
		System.out.println("a原数组" + Arrays.toString(a));
		for (int begin = 0, end = a.length - 1; begin < end; begin++, end--) {
			int temp = a[begin];
			a[begin] = a[end];
			a[end] = temp;
		}
		System.out.println("a数组反转后" + Arrays.toString(a));

	}

	public static void test2() {

		Scanner sc = new Scanner(System.in);
		System.out.println("输入年龄");
		int[] age = new int[5];
		for (int i = 0; i < 5; i++) {
			age[i] = sc.nextInt();
		}
		for (Integer num : age) {
			System.out.println(num);
		}
	}

	public static void test3() {
		/*
		 * 从键盘输入10个整数存入在一个数组中, 计算所有元素之和及平均值,并找出最大值和最小值。
		 */
		Scanner sc = new Scanner(System.in);
		System.out.println("输入十个整数:");
		int[] a = new int[10];
		// 录入数据并存入集合中
		double sum = 0;
		double ave;
		for (int i = 0; i < 10; i++) {
			a[i] = sc.nextInt();
			sum += a[i];
		}
		int max = a[0];
		int min = a[0];
		for (int i = 0; i < 10; i++) {

			if (a[i] > max) {
				max = a[i];
			}
			if (a[i] < min) {
				min = a[i];
			}

		}

		ave = sum / a.length;
		System.out.println("原数组为:" + Arrays.toString(a));
		System.out.println("数组之和为:" + sum);
		System.out.println("数组平均值为" + ave);
		System.out.println("数组的最大值" + max);
		System.out.println("数组的最小值" + min);
	}

	public static void test4() {
		// 将数组{4,0,5,8,2,0,6,8,3}中的0去掉后返回一个新数组。

		int[] arr = { 4, 0, 5, 8, 2, 0, 6, 8, 3 };// 定义一个原来的数组

		int count = 0;

		// 循环遍历,判断如果为不为0,则利用数组的赋值 Arrays.copyOf();方法进行数组的复制

		for (int i = 0; i < arr.length; i++)

		{

			if (arr[i] == 0) {
				count++;
			}

		}
		int[] newarr = new int[arr.length - count];
		int index = 0;
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] != 0) {
				newarr[index++] = arr[i];
			}
		}

		System.out.println("去0后的数组:" + Arrays.toString(newarr));

	}

	public static void test5() {
		int[] a = { 1, 7, 9, 1, 13, 15, 17, 19 };

		int[] b = { 2, 4, 6, 8, 10 };

		int[] c = new int[a.length + b.length];

		for (int i = 0; i < a.length; i++)// 代表轮数,选出几个最大的。数组长度-1

		{

			c[i] = a[i];// 数组a存到c中

		}

		for (int i = 0; i < b.length; i++)

		{

			c[i + a.length] = b[i];// 数组b存到c中

		}
		System.out.println("合并后的数组:" + Arrays.toString(c));
		for (int i = 0; i < c.length - 1; i++) {// 选几个最大的 length-1
			for (int j = 0; j < c.length - 1 - i; j++) {// 换的次数
				if (c[j] > c[j + 1]) {
					int temp = c[j];
					c[j] = c[j + 1];
					c[j + 1] = temp;

				}

			}
		}
		System.out.println("升序后的数组:" + Arrays.toString(c));
	}

	public static void test6(int n) {
		/* 输出1 1 2 3 5 8 13……这样的 */
	    int[]  a = new int[n];//定义一个元素20的数组
		int i = 0;
		// 前两个数都是1,之后都是前两个数之和为下一个数
		for (i = 0; i < 20; i++) {
			// 判断数组前俩元素都为1
			if (i == 0 || i == 1)

			{
				a[i] = 1;

			} else// 其他元素

			{

				a[i] = a[i - 1] + a[i - 2];

			}

		}
		System.out.println(Arrays.toString(a));
	}

	public static void test7() {
		/*
		 * 歌手打分:在歌唱比赛中,共有10位评委进行打分, 在计算歌手得分时,去掉一个最高分,去掉一个最低分,
		 * 然后剩余的8位评委的分数进行平均,就是该选手的最终得分。 输入每个评委的评分,求某选手的得分。
		 */
		Scanner sc = new Scanner(System.in);
		System.out.println("请十位评委输入选手的分数:");
		int[] a = new int[10];
		double s = 0;
		double sum = 0;
		double ave;
		for (int i = 0; i < 10; i++) {
			a[i] = sc.nextInt();
			s += a[i];
		}
		int max = a[0];
		int min = a[0];
		for (int i = 0; i < 10; i++) {

			if (a[i] > max) {
				max = a[i];
			}
			if (a[i] < min) {
				min = a[i];
			}

		}
		sum = s - max - min;
		ave = sum / (a.length - 2);
		System.out.println("该选手的平均分为:" + ave);

	}

	public static void test8(int[] a) {
		/*
		 * 判断一个数组{1,2,3,1,0}中是否存在相同的元素, 如果存在相同的元素则输出“重复”,否则输出“不重复”
		 */
         int x=0;
		for (int i = 0; i < a.length - 1; i++)	{
			
			for (int j = i + 1; j < a.length; j++)
			{
				// 如果有一组元素相同,则数组中存储重复,结束循环。
				if (a[i] == a[j])
				{
					System.out.println("重复");
					x++;
                    break;
                          
                   } 				
			}
		}
		if(x==0){
			System.out.println("不重复");
		}
	}
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
整理知识点(word) 1、定义一个int[] a ={4,2,0,-1,-8,23,9}求数组元素的最大值、最小值、平均数、总和数组的复制、反转 2、数组元素的排序从键盘输入5个人的年龄,全部输入完后打印。 3、从键盘输入10个整数存入在一个数组中,计算所有元素之和及平均值,并找出最大值和最小值。 4、说明下面语句的错误原因并改正之? int numbers[]; int[] numbers; numbers = { 42, 84, 168 }; x数组常量只能在初始化时才能使用。 int[3] numbers = { 42, 84, 168 }; x数组常量只能在初始化时才能使用。 int[] numbers = new int[]; x变量必须提供尺寸表达式或数组的初始化 int[] numbers = new int[3] {};x在提供数组初始化器时不能定义维度表达式 int[] numbers = new int[3]; int[] numbers = new int[3]; numbers[numbers.Length] = 42; x int[][] numbers = {{ 42, 84 }, { 84, 42 }}; 5、已知数组为小学课程:(语文、数学、自然、社会 ),使用foreach循环遍历输出。 6、将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|C罗|罗纳尔多|贝克汉姆”。   7、2 定义类Student,包含三个属性:学号number(int),年级state(int),成绩score(int)。 创建20个学生对象,学号为1到20,年级和成绩都由随机数确定,打印出3年级(state值为3)的学生信息。 提示:生成随机数:Math.random(),返回值类型double; 四舍五入取整:Math.round(double d),返回值类型long
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值