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("不重复");
}
}
}