.
产生
10
个
100
以内的随机整数以填充一维数组,实现以下功能。
产生
10
个
100
以内的随机整数以填充一维数组,实现以下功能。
① 找出最大以及最小值。
② 查找给定整数
a
在数组中最后一次出现的位置,若不存在则提示。
a
在数组中最后一次出现的位置,若不存在则提示。
③ 判断数组是否呈非递减排列。
④ 将数组元素翻转存放。
package exp4;
import java.util.Random;
import java.util.Scanner;
public class Exp4_1 {
int[] init() { //产生 10 个 100 以内的随机整数
int[] a = new int[10];
Random r = new Random();//创建随机数生成器对象
for (int i = 0; i < a.length; i++) {
a[i] = r.nextInt(100); //产生0——99的随机整数,给每个数组元素赋值
}
return a;
}
void print(int[] a) { //打印数组
for (int i = 0; i < a.length; i++) {
System.out.printf("%-5d", a[i]);
}
System.out.println();
}
int findMax(int[] a) { //找最大值
int max = a[0];
for (int i = 1; i < a.length; i++) {
if (max < a[i]) {
max = a[i];
}
}
return max;
}
int findMin(int[] a) { //找最小值
int min = a[0];
for (int i = 1; i < a.length; i++) {
if (min > a[i]) {
min = a[i];
}
}
return min;
}
int findLastLocation(int[] a, int x) { //查找给定整数 a 在数组中最后一次出现的位置
for (int i = a.length - 1; i >= 0; i--) {
if (a[i] == x) {
return i;
}
}
return -1; //如果a在数组中不存在,返回-1
}
boolean isAsc(int[] a) { //判断数组是否呈非递减排列
for (int i = 0; i < a.length - 1; i++) {
if (a[i] > a[i + 1]) {
return false;
}
}
return true;
}
void reverse(int[] a) { // 将数组元素翻转存放
for (int i = 0; i < a.length / 2; i++) {
int temp = a[i];
a[i] = a[a.length - i - 1];
a[a.length - i - 1] = temp;
}
}
public static void main(String[] args) {
Exp4_1 t = new Exp4_1();
int[] a = t.init();
t.print(a);
System.out.println("max=" + t.findMax(a));
System.out.println("min=" + t.findMin(a));
System.out.print("输入要查找的数:");
Scanner s = new Scanner(System.in);
int x = s.nextInt();
int i = t.findLastLocation(a, x);
if (i == -1) {
System.out.println(x + " 在数组中不存在。");
}
else {
System.out.printf("%d 最后出现的位置: %d。\n", x, i);
}
if (t.isAsc(a)) {
System.out.println("数组是非递减排列!");
}
else {
System.out.println("数组不是非递减排列!");
}
t.reverse(a);
System.out.println("翻转后的数组:");
t.print(a);
}
}
运行结果
版权声明:本文为Dream_begin_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。