数组编程题

 思路一:边输入边消除重复.  定义一个数组arr[0]    输入一个数看它在不在,在就不管了,不在就把数字加进去,

import java.util.Scanner;
/*

边输入边消除重复,
   
 
 */
class Class30_1{
    public static void main(String args[]){
        Scanner  Sc = new Scanner(System.in);
        int[]  arr = new int[0];
        System.out.print("请输入十个数字:");
        for(int i = 0;i<10;i++){
            int num = Sc.nextInt();
            if(!isArrIsNum(arr,num)){    //判断在不在数组
                arr=addnum(arr,num);     //不在的话将num加入arr中
            }
        }
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
     
    }
    //判断num在不在数组arr
    public static boolean isArrIsNum(int[] arr,int num){
        for(int i =0;i<arr.length;i++){
            if(arr[i]==num){
                return true; 
           }
        }
        return false;
    }
    //数组扩容将num加入arr中
    public static int[] addnum(int[] arr,int num){    
        int[] newarr  = new int[arr.length+1];
        for(int i =0;i<arr.length;i++){
            newarr[i] = arr[i];
        }
        newarr[newarr.length-1] = num;
        return newarr;
    }
}

思路二:也是边输入边消除,不同的是这个数组长度给定且要计数组的有效个数,定义一个数组arr[10],输入一个数看它在不在,在就不管了,不在就把数字加进去,

/*
思路:
在输入数字的同时,进行重复的消除
步骤:
1.读入一个数字
2.判断该数字是否以存在于数组中
    不存在 进去
    存在  不管
 */
import java.util.Scanner;
class Class30_2{
    public static void main(String args[]){
      int[] arr = new int[10];
      Scanner Sc = new Scanner(System.in);
      System.out.print("请输入十个数字:"); //提示用户输入
      int size = 0;             //有效个数
      for(int i = 0;i<10;i++){
          int num = Sc.nextInt();
          if(!isArrIsNum(arr, num)){
            arr[size] =num;      //将num加入到数组下标为size的位置
            size++;              //有效个数加1
             
          }
        }
     for(int i =0;i<size;i++){           //输出的为数组的有效个数
        System.out.print(arr[i]+" ");
     }
    }
   //判断数字num在不在数组中
    public static boolean isArrIsNum(int[] arr,int num){
        for(int i =0;i<arr.length;i++){
            if(arr[i]==num){
                return true;   //存在返回true
           }
        }
        return false;        //不存在返回false

    }
   
}

 代码如下:

import java.util.Scanner;
class Class31{
    public static void main(String args[]){
        Scanner Sc = new Scanner(System.in);
        System.out.print("请输入数字");   
        int num1 = Sc.nextInt();     //输入的第一个数字为数组长度
        int[] arr = new int[num1];
        for(int i=0;i<num1;i++){     //遍历数组
            int num = Sc.nextInt();
            arr[i] = num;
        }
         if(isSorted(arr)){
            System.out.println("The list is already sorted");
            }else{
            System.out.println("The list is no sorted");
            }
      
    }
     //判断该数字列表是否排好序
     public static boolean isSorted(int[] arr){
        boolean flag = true;   //默认它是排好序的
        for(int i= 0;i<arr.length-1;i++){
            for(int j=i+1;j<arr.length;j++){
                if(arr[i]>arr[j]){
                    flag = false;   //没有排好序
                    
                }
                
            }
        }
        return flag;
    }
}

 代码如下:

import java.util.*;
class Class32{
    public static void main(String[] args){
        //1.输入球的个数(路径的个数)和槽子的个数
        Random random=new Random();
        Scanner scanner=new Scanner(System.in);
        System.out.print("Enter the number of balls to drop:");
        int ballsCount=scanner.nextInt();
        System.out.print("Enter the number of slots in the bean machine:");
        int slotsCount=scanner.nextInt();
        //2.定义槽子的数组
        int[] slots=new int[slotsCount];
        //3.计算路径后再统计
        //路径的个数就是球的个数 路径随机生成几次 slotsCount-1次
        for(int i=0;i<ballsCount;i++){
            //4.生成路径
            String path="";
            for(int j=0;j<slotsCount-1;j++){
                path=path+(random.nextInt(2)==0?"L":"R");
            }
            System.out.println(path);
            int RCount=getR(path);
            slots[RCount]++;
        }
        for(int i=0;i<slots.length;i++){
            System.out.println(slots[i]);
        }
        int max=getMax(slots);
        for(int i=max;i>0;i--){
            for(int j=0;j<slots.length;j++){
                if(i<=slots[j]){
                    System.out.print("O ");
                }else{
                    System.out.print("  ");
                }
            }
            System.out.println();
        }
    }
    public static int getMax(int[] slots){
        int max=slots[0];
        for(int i=1;i<slots.length;i++){
            if(slots[i]>max){
                max=slots[i];
            }
        }
        return max;
    }
    public static int getR(String path){
        //"abcd"字符串本质上就是字符数组
        //char[] values=new char[]{'a','b','c','d'}
        //查看字符串中某个位置的内容
        //LRLRLRLRLR
        int RCount=0;
        for(int i=0;i<path.length();i++){
            if(path.charAt(i)=='R'){
                RCount++;
            }
        }
        return RCount;
    }
}

代码如下:

import java.util.Scanner;
class Home30{
    public static void main(String args[]){
        Scanner Sc = new Scanner(System.in);  //创建对象
        System.out.print("请输入10个数字:");
         double[] arr = new double[10];      //定义double数组
         for(int i =0; i<10;i++){
            double num = Sc.nextDouble();
            arr[i] = num;
        }
        
        System.out.print("最小元素 "+arr[indexOfSmallestElement(arr)]+"最小下标 为"+indexOfSmallestElement(arr));
        

    }

   public static int  indexOfSmallestElement(double[] arr){
          
          int minIndex =0;
          for(int i=0;i<arr.length;i++){
              if(arr[i]<arr[minIndex]){
                  minIndex = i;
              }
          }
          return minIndex;        //返回最小下标
    }
}

代码如下:

import java.util.Scanner;
class Home31{
    public static void main(String args[]){
        Scanner Sc =  new Scanner(System.in);
        System.out.println("请输入数字列表1:");
        int num1 = Sc.nextInt();   //num1为数组长度
        int[] arr1 = new int[num1];
        
        for(int i=0;i<arr1.length;i++){
              int num = Sc.nextInt();
              arr1[i] = num;

        }
        System.out.println("请输入数字列表2:");
        
        int  num2 = Sc.nextInt();    //num2为数组长度
        int[] arr2 = new int[num2];
        for(int i=0;i<arr2.length;i++){
            int num = Sc.nextInt();
            arr2[i] = num;

        }
        if(equals(arr1,arr2)){
               System.out.println("相同");
       }else{
        System.out.println("不同");
       }
    }
    //判断两个数组是否相等
    public static boolean equals(int[] arr1,int[] arr2){
           for(int i =0;i<arr1.length;i++){
               if(arr1[i]==arr2[i]){
                   return true;
               }
           }
           return false;
    }
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值