找出指定元素在指定数组中所有下标位置

/*
找出指定元素在指定数组中所有下标位置
要求:
	a. 不允许在方法内打印展示
	b. 考虑多个数据情况
	c. 需要在方法外获取到下标数据信息
	d. 不允许使用数组作为返回值
*/

import java.util.Scanner;

class HomeWork5 {
	public static void main(String[] args) {
		int[] array = {33, 11, 33, 33, 69, 22, 33};
		
		showNumArr(array);
		
		System.out.println();
		
		int userIn = userInput();
		
		int subscript = findArray(array, userIn);
		
		showSubscript(array, subscript, userIn);
	}
	
	/**
	* 展示数组
	*/
	public static void showNumArr(int[] numArr) {
		for (int i = 0; i < numArr.length; i++) {
			System.out.print(numArr[i] + " ");
		}
	}
	
	/**
	* 用户输入想要查找的数组中的某个数据值
	* 
	* @return 返回用户输入的数据
	*/
	public static int userInput() {
		int num = 0; 
		
		System.out.println("请输入您想要查找的数据值:");
		Scanner sc = new Scanner(System.in);
		num = sc.nextInt();
		
		return num;
	}
	
	/**
	* 返回数组中需要查找元素的下标
	*
	* @param int[] array 代表传入的数组
	* @param num 代表用户想要查找的数据
	* @return 返回数组中出现该位置的下标元素
	*
	*/
	public static int findArray(int[] array, int num) {
		int temp = 0;
		
		for (int i = 0; i < array.length; i++) {
			if (array[i] == num) {
				temp += i;
				if (i < array.length - 1) {
					temp *= 10;
				}
			}
		}
		//这段解决了好心的大哥指出的错误。
		if (temp % 10 == 0 && array[0] != num) {
            temp /= 10;
        }
		return temp;
	}
	
	/**
	*
	* 展示找到的下标位置
	*
	* @param num 查找下标函数的返回整数值
	* @param find 代表想要查找的元素
	*
	*/
	public static void showSubscript(int[] array, int num, int find) {
		int temp = -1;
		
		while (num > 0) {
			temp = num % 10;
			System.out.print(temp + " ");
			num /= 10;
		}
		
		if (array[0] == find) {
			System.out.print("0");
		}
	}
}

由于不允许返回一个数组,所以要开拓一下思维,用一个整型变量去接收这个下标值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值