java方法及数组基础练习题

1、定义一个10个元素的数组,要求从键盘输入(Scanner类,循环输入),并在里面查找某个数据,找到输出“有”,没有这个数提示“无”。

思路:使用Scanner类输入数组元素,然后再输入要查找的元素,循环比较查找。

package text;

import java.util.Scanner;

public class shiyan {
    public static void main(String[] args) {
        int[]arr={1,3,43,32,54,65,43,32,54,10};
        System.out.println("请输入要查找的数字");
        Scanner s=new Scanner(System.in);
        int index=s.nextInt();
        int flag=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]==index){
                flag=1;
                break;
            }


        }
        if(flag==1){
            System.out.println("该数组有这个数字");
        }
        else{
            System.out.println("没有这个元素");
        }

    }
}

0e06c93e7cde47528218a2ec2e43b728.png

2、编写一个数组处理类,要求里面有这样的两个方法,第一个方法,可以对输入的数组进行排序,第二个方法可以删除指定位置的数组元素;然后再写一个主类,测试上面这个类的正确性。

思路:第一个类框架

class first{

       void sort(int [] a){//该方法为对a数组排序的方法}

       void delelement(int[] a,int index){//该方法实现删除a数组内第index 位置的元素}

 

  //可以增加折半等等

}

 

第二个类框架:

class second{

public static void main(String args[])

{ 使用Scanner输入一个数组,采用前一个类的第一方法对其排序,输出看看是否正确,在采用前一个类的第二个方法,输出第3个元素,验证正确性。

}

import java.util.Scanner;

public class paiXu {
    void sort(int[] a) {
        int i, j, k, temp;
        for (i = 0; i < a.length; i++) {
            k = i;
            for (j = i + 1; i < a.length; j++)
                if (a[k] < a[j])
                    k = j;
                    temp = a[i];
                    a[i] = a[k];
                    a[k] = temp;
        }
    }

    void delete(int[] a, int index) {
        for (int i = index; i < a.length - 1; i++)
            a[i] = a[i + 1];
    }

    void printarray(int[] a) {
        for (int i = 0; i < a.length; i++)
            System.out.print(a[i]);
        System.out.println(" ");
    }


            public static void main(String[] args) {
                Scanner sc= new Scanner(System.in);
                int[]a=new int[10];
                int i;
                System.out.println("请输入十个数");
                for(i=0;i<10;i++)
                    a[i] = sc.nextInt();
                    paiXu p=new paiXu();
                    System.out.print("排序前输出:");
                    p.printarray(a);
                    p.sort(a);
                    System.out.println("排序后输出:");
                    p.printarray(a);
                    p.delete(a,5);
                    System.out.println("删除第五个元素后输出:");
                    p.printarray(a);
                }
            }

5e674d53ff6749f699e40198659da463.png

 

3、给定一个十进制正整数(不超过 3000 位) , 请将其转换成对应的二进制整数

比如3465555369355754989772 

输出

101110111101111000111101111101110010000100111001011011011110100011001100

public class Change {
    public static String Transforms(String s, int x, int y) {
        return new java.math.BigInteger(s, x).toString(y);
    }

    public static String Transforms2(String s, int x, int y) {
        int shu[] = new int[3000];
        int c[] = new int[3000];
        String yu = "";
        for (int i = 1; i < s.length(); i++) {
            shu[i] = s.charAt(i - 1) - '0';
        }
            shu[0] = s.length();
            while (shu[0] >= 1) {
                c[0] = shu[0];
                x = 0;
                for (int i = 1; i <= c[0]; i++) {
                    c[i] = (x * 10 + shu[i]) / y;
                    x = (x * 10 + shu[i]) % y;
                }
                yu =x+yu;
                int lenc = 1;
                while (c[lenc] == 0 && lenc <= c[0]) {
                    lenc++;
                    shu = new int[3000];
                    for (int j = lenc; j <=c[0]; j++) {
                        shu[++shu[0]] = c[j];
                    }
                }
            }
        return yu;
    }

        public static void main(String[] args) {
            System.out.println("请输入一串十进制数");
            Scanner sc = new Scanner(System.in);
            String str1 = sc.nextLine();
            System.out.println("转换为二级制后为");
            System.out.println(Change.Transforms(str1, 10, 2));
            System.out.println(Change.Transforms2(str1, 10, 2));
        }
    }

9bb16bfe63fc46dca7d3198cb6b32a0c.png

 

  • 27
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值