Java作业3

一、请输入10位同学的java成绩,
1、求平均成绩,最高成绩、最低成绩
2、对10的成绩按照从低到高的顺序排列

package oupeng.week3.HomeWork;


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

public class HomeWorkDemo1 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int[] grade=new int[10];
        System.out.print("请输入10位同学的Java成绩:");
        for (int i=0;i< grade.length;i++) {
            grade[i] = sc.nextInt();
        }
        int sum=0,max=1,min=grade[0];
        for (int i=0;i< grade.length;i++) {
            if (max < grade[i]) {
                max = grade[i];
            }
            if (min > grade[i]) {
                min = grade[i];
            }
            sum += grade[i];
        }
        System.out.println("排序前:"+Arrays.toString(grade));
        BubbleSort(grade);
        System.out.println("平均分:"+sum/ grade.length);
        System.out.println("最高分:"+max);
        System.out.println("最低分:"+min);
    }
    public static void BubbleSort(int a[]){
        for (int i=0;i<a.length;i++){
            for (int j=0;j<a.length-1-i;j++){
                if (a[j]>a[j+1]){
                    swap(a,j,j+1);
                }
            }
        }
        System.out.println("排序后:");
        System.out.println(Arrays.toString(a));
    }
    public static void swap(int arr[],int i,int j){
        arr[i]=arr[i]^arr[j];
        arr[j]=arr[i]^arr[j];
        arr[i]=arr[i]^arr[j];
    }
}

在这里插入图片描述
二、给定一个数组,判断某个元素是否在该数组中

package oupeng.week3.HomeWork;

public class HomeWorkDemo2 {
    public static void main(String[] args) {
        int [] arr={12,34,56,78,97,100};
        System.out.print(exist(arr, 58));
    }

    public static boolean exist(int a[], int target){
        for (int i=0;i<a.length;i++){
            if (a[i]==target){
                return true;
            }
        }
        return false;
    }
}

在这里插入图片描述
三、给定一个数组,大小为10,输入十个同学的成绩,求这些成绩的总分数
某一天转入2个新同学,请再次求12个同学的平均成绩(尝试着使用扩容的形式做)

package oupeng.week3.HomeWork;

import java.util.Scanner;

public class HomeWorkDemo3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("输入10个同学的成绩:");
        int[] a = new int[10];
        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            a[i] = sc.nextInt();
            sum += a[i];
        }
        System.out.println("总成绩:" + sum + "平均分:" + sum / a.length);
        int s = add(a, 2) + sum;
        System.out.println("新增后的总成绩:" + s + "平均分:" + s / (a.length + 2));
    }

    public static int add(int[] a, int num) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入新增同学的成绩:");
        int[] newarr = new int[a.length + num];
        int sum = 0;
        for (int i = a.length; i < newarr.length; i++) {
            newarr[i] = sc.nextInt();
            sum += newarr[i];
        }
        return sum;
    }
}

在这里插入图片描述
四、有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
{10, 8, 5, 3, 27, 99}

package oupeng.week3.HomeWork;

public class HomeWorkDemo4 {
    public static void main(String[] args) {
        int a[]={10,8,5,3,27,99};
        System.out.println(count(a));
    }

    public static int count(int a[]){
        int countSum=0;
        for (int i:a){
            if (i%2==0){
                countSum+=i/2;
            }
            else {
                countSum+=i/2+1;
            }
        }
        return countSum;
    }
}

在这里插入图片描述
五、将数组中的重复数据去重

package oupeng.week3.HomeWork;

import java.util.Arrays;

public class HomeWorkDemo5 {
    public static void main(String[] args) {
        int a[]={12,14,13,16,17,15,16};
        distinct(a);
    }
    public static void distinct(int a[]){
        int newarr[]=new int[a.length];
        for (int i=0;i<a.length;i++){
           for (int j=i+1;j<a.length;j++){
               if (a[i]==a[j]&&a[j]!=0){
                   a[j]=0;
               }
                 newarr[i] = a[i];
           }
        }
        int count=0;
        for (int i:newarr){
            if (i!=0){
                count++;
            }
        }
        int a1[]=new int[count];
        int k=0;
        for (int i:newarr){
            if (i!=0){
                a1[k]=i;
                k++;
            }
        }
        System.out.println(Arrays.toString(a1));
    }
}

在这里插入图片描述
六、如何将10个0-10随机存入数组中

package oupeng.week3.HomeWork;

import java.util.Random;

public class HomeWorkDemo6 {
    public static void main(String[] args) {
        Random r=new Random();
        int[] a=new int[10];
        for (int i = 0; i < a.length; i++) {
            a[i]=r.nextInt(0,11);
        }
        for(int j:a){
            System.out.println(j);
        }
    }
}

在这里插入图片描述
七、存在整数数组nums,将该数组中的所有偶数元素排列到奇数元素前

package oupeng.week3.HomeWork;

import java.util.Arrays;

public  class HomeWorkDemo7 {
    public static void main(String[] args) {
        int [] a={1,2,3,4,5,6,7,8,9};
        System.out.println(Arrays.toString(sortArrayByParity(a)));
    }

    public static int[] sortArrayByParity(int[] nums) {
        int[] sortedArray = new int[nums.length];
        int leftIndex = 0, rightIndex = nums.length - 1;
        for (int i = 0; i < nums.length; i++) {
            if ((nums[i] & 1) == 0)
                sortedArray[leftIndex++] = nums[i];
            else if ((nums[i] & 1) == 1)
                sortedArray[rightIndex--] = nums[i];
        }
        return sortedArray;
    }
}

在这里插入图片描述
八、某个人进入如下一个棋盘中,要求从左上角开始走,
最后从右下角出来(要求只能前进,不能后退),
问题:共有多少种走法?

package oupeng.week3.HomeWork;

class HomeWorkDemo8 {
    public static void main(String[] args) {
        System.out.println(uniquePaths(5, 3));
    }
    public static int uniquePaths(int m, int n) {
        int[][] f = new int[m][n];
        for(int i = 0; i < m; i++)
            for(int j = 0; j < n; j++)
                if(i == 0 && j == 0) f[i][j] = 1;
                else{
                    if(i != 0) f[i][j] += f[i - 1][j]; //如果可以从上方转移过来
                    if(j != 0) f[i][j] += f[i][j - 1]; //如果可以从左方转移过来
                }
        return f[m - 1][n - 1];
    }
}

在这里插入图片描述
九、执行下列程序的输出结果为 D
public class Test {
public static void main(String[] args) {
String s1 = “HelloWorld”;
String s2 = new String(“HelloWorld”);
if (s1 == s2) {
System.out.println(“s1 == s2”);
} else {
System.out.println(“s1 != s2”);
}
if (s1.equals(s2)) {
System.out.println(“s1 equals s2”);
} else {
System.out.println(“s1 not equals s2”);
}
}
}

A. s1 == s2
    s1 not equals s2
B. s1 == s2
    s1 equals s2
C. s1 != s2
    s1 not equals s2
D. s1 != s2
    s1 equals s2
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十冶一生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值