Java学习之路05

完成昨天剩下的三个题目,冲冲冲!

需求:已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中的索引,并在控
制台输出找到的索引值。

package hELLO;
import java.util.Scanner;
public class szpd {
    public static void main(String[] args) {
        int[] arr = new int[]{19,28,37,46,50};
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int y = -1;
        for(int i=0; i<arr.length; i++){
            if(x == arr[i]){
                y=i;
                break;
            }
        }
        if(y == -1){
            System.out.println("数组中没有与之相同的数");
        }else {
            System.out.println("数组中的第"+(y+1)+"个数与其相同");
        }
    }
}

在本题中,碰到了一个问题,就是为什么break如果放在if语句外面for循环里面的话,Y的值就不会发生改变,想知道这是为什么,求大佬解答。

2.
需求:已知一个数组 arr = {19, 28, 37, 46, 50}; 用程序实现把数组中的元素值交换, 
          交换后的数组 arr = {50, 46, 37, 28, 19}; 并在控制台输出交换后的数组元素。**

```java
package hELLO;

public class daoxu {
    public static void main(String[] args) {
        int[] arr = new int[]{19,28,37,46,50};
        for(int i=0, l=arr.length-1; i<=l; i++, l--){
            int x = arr[i];
            arr[i] = arr[l];
            arr[l] = x;
        }
        for(int y=0; y<arr.length; y++){
            System.out.println(arr[y]);
        }
    }
}

这里要注意在for循环中要记得两个要用,连接。

需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。

package hELLO;
import java.util.Scanner;
public class df {
    public static void main(String[] args) {
        int[] arr = new int[6];
        Scanner sc = new Scanner(System.in);
        for(int i=0; i<arr.length; i++){
            System.out.println("请输入第"+(i+1)+"个裁判打的分数");
            arr[i] = sc.nextInt();
        }
     int x = sum(arr);
        int y = max(arr);
        int z = min(arr);
        int m = (x-y-z)/(arr.length-2);
        System.out.println("最终的得分情况为"+m+"分");
    }
    public static int sum(int[] arr){
        int x =0;
        for(int i=0; i<arr.length; i++){
           x += arr[i];
        }
        return x;
    }
    public static int max(int[] arr){
        int Max = arr[0];
        for(int i=0; i<arr.length; i++){
            if(Max<=arr[i]){
                Max = arr[i];
            }
        }
        return Max;
    }
    public  static int min(int[] arr){
        int Min = arr[0];
        for(int i=0; i<arr.length; i++){
            if(Min>=arr[i]){
                Min = arr[i];
            }
        }
        return Min;
    }
}

这一题最主要的就是构建方法的思路。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值