6、题目:编写程序,随机生成10个1~100之间互不相同的整数,放入一维数组中,然后输入一个数,查找该数是否在这个数组中,若在,求出是第几个,如果不在,给出不在信息。
时间: 2023-10-24 13:08:40 浏览: 108
好的,以下是Java代码实现:
```java
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 随机生成10个1~100之间互不相同的整数
int[] nums = generateRandomArray(10, 1, 100);
System.out.println("随机生成的数组为:" + Arrays.toString(nums));
// 输入一个数,查找该数是否在这个数组中
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
int num = scanner.nextInt();
int index = findIndex(nums, num);
if (index != -1) {
// 若在,求出是第几个
System.out.printf("该数在数组中,是第%d个数。\n", index + 1);
} else {
// 如果不在,给出不在信息
System.out.println("该数不在数组中。");
}
}
/**
* 生成指定范围内指定个数的随机整数数组
* @param count 生成的数的个数
* @param min 生成数的最小值
* @param max 生成数的最大值
* @return 返回生成的随机整数数组
*/
public static int[] generateRandomArray(int count, int min, int max) {
int[] result = new int[count];
Random random = new Random();
for (int i = 0; i < count; i++) {
int num;
do {
num = random.nextInt(max - min + 1) + min;
} while (contains(result, num));
result[i] = num;
}
return result;
}
/**
* 判断数组中是否包含指定的数
* @param arr 数组
* @param num 指定的数
* @return 如果包含指定数,返回true,否则返回false
*/
public static boolean contains(int[] arr, int num) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
return true;
}
}
return false;
}
/**
* 在数组中查找指定数的下标
* @param arr 数组
* @param num 指定的数
* @return 如果在数组中找到指定数,返回下标,否则返回-1
*/
public static int findIndex(int[] arr, int num) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
return i;
}
}
return -1;
}
}
```
运行结果示例:
```
随机生成的数组为:[77, 27, 24, 62, 78, 23, 68, 67, 98, 93]
请输入一个整数:68
该数在数组中,是第7个数。
```
希望对你有所帮助。
阅读全文