数组相关操作

寻找数组中最大值

问题描述
          对于给定整数数组a[],寻找其中最大值,并返回下标。
        输入格式
          整数数组a[],数组元素个数小于等于100。输出数据分作两行:第一行只有一个数,表示数组元素个数;第二行为数组的各个元素。
        输出格式
          输出最大值,及其下标
        样例输入
        3
        3 2 1

        样例输出
        3 0


删除数组零元素

从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素, 其后元素向数组首端移动。
         注意,CompactIntegers函数需要接受数组及其元素个数作为参数,
         函数返回值应为删除操作执行后数组的新元素个数。输出删除后数组中元素的个数并依次输出数组元素。 样例输入: (输入格式说明:5为输入数据的个数,3 4 0
         0 2 是以空格隔开的5个整数) 5 3 4 0 0 2 样例输出:(输出格式说明:3为非零数据的个数,3 4 2 是以空格隔开的3个非零整数) 3 3
          4 2 样例输入: 7 0 0 7 0 0 9 0 样例输出: 2 7 9

public static void main(String[] args) {
		// TODO Auto-generated method stub
	
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();// 数组长度
		int[] a = new int[n];
		for (int i = 0; i < n; i++) {
			a[i] = sc.nextInt();
		}
		int[] b = CompactIntegers(a, n);
		System.out.println(b.length);
		for (int i : b) {
			System.out.print(i + " ");
		}
	}

	public static int[] CompactIntegers(int a[], int n) {
		//如果数值等于0  数组长度--
		for (int i = 0; i < a.length; i++) {
			if (a[i] == 0) {
				n--;
			}
		}
		//创建一个新数组  接收不为0的数组元素 并返回
		int[] temp = new int[n];
		int count = 0;// 下标
		for (int i = 0; i < a.length; i++) {
			if (a[i] != 0) {
				temp[count] = a[i];
				count++;
			}
		}
		return temp;
	}

求数组中绝对值最大的元素、及下标

输入一个3行4列的数组,找出该数组中绝对值最大的元素、
         输出该元素及其两个下标值。如有多个输出行号最小的,还有多个的话输出列号最小的。 

        样例输入
          1    2    3    5 
        -2    5    8    9 
          6  -7    5    3 
        样例输出
        9 2 4 


查找整数a在数列中的第一次出现的位置

问题描述:
        给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
        输入格式
        第一行包含一个整数n。
        第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
        第三行包含一个整数a,为待查找的数。
        输出格式
        如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
        样例输入
        6
        1 9 4 8 3 9
        9
        样例输出
        2
        数据规模与约定
        1 <= n <= 1000。


数组去重

问题描述
        输入10个整数组成的序列,要求对其进行升序排序,并去掉重复元素。
        输入格式
        10个整数。
        输出格式
        多行输出,每行一个元素。
        样例输入
        2 2 3 3 1 1 5 5 5 5
        样例输出
        1
        2
        3
        5

Scanner sc=new Scanner(System.in);
        int[] arr=new int[10];
        //输入10个整数组成的序列
        for(int i=0;i<arr.length;i++) {
            arr[i]=sc.nextInt();
        }
        //排序  去重
        for(int i=0;i<arr.length-1;i++) {
            for(int j=0;j<arr.length-1-i;j++) {
                if(arr[j]>arr[j+1]) {
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        //先输出第一个
        System.out.println(arr[0]);
        //当前项与前一个对比  如果不一样打印输出
        for (int i =1;i<arr.length;i++) {
            if(arr[i]!=arr[i-1]) {
                System.out.println(arr[i]);
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值