编码题一
题目: 数组查找操作:定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”,不包含就打印出“No”。
(这题设置了让用户自己输入数组长度以及内容,有个奇怪的问题没有解决,要是我使用nextLine来获取输入的数据时,会跳过内容,导致整个程序都有问题。不知是否有前辈解惑,这里我用了nextInt或next来避免这个问题的)。
package dylan.linger.array.work;
import java.util.Arrays;
import java.util.Scanner;
/**
* @author Linger
* 查找数组内容
*/
public class CheckElement {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数组的长度:");
int i = scanner.nextInt();
String[] array = new String[i];//设置数组长度
int j=0;//数组索引值
int cyc=0;//初始化判断
boolean flag = true;
do {
if(j<array.length){
System.out.print("请输入数组中的内容:");
array[j] = scanner.next();
j++;
if(j<i) {
System.out.print("请问是否继续输入1=>是/0=>否:");
cyc = scanner.nextInt();
if(cyc != 1){//如若不想继续输入,后面内容设为空
for(int l=j;l<array.length;l++){
array[l] = "";
}
}
}
}else{
break;
}
} while (cyc==1);
System.out.print("请输入要查询的单词:");
String input = scanner.next();
for(int k=0;k<array.length;k++){
if(array[k].equals(input)){
System.out.println("您查询的单词在数组中的第"+(k+1)+("位!"));
flag = false;
}
}
if(flag){
System.out.println("在数组中未查询到此单词!");
}
}
}
结果是这样的:
编码题二
题目: 获取数组最大值和最小值操作:利用Java的Math类的random()方法,编写函数得到0到n之间的随机数,n是参数。并找出产生50个这样的随机数中最大的、最小的数,并统计其中>=60的有多少个。
提示:使用 int num=(int)(n*Math.random());获取随机数。
(加了让用户确定最大值以及生成个数。)
package dylan.linger.array.work;
import java.util.Arrays;
import java.util.Scanner;
/**
* @author Linger
* 查询最大最小值
*/
public class MaxMin {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("请确定随机数的上限为:");
int max = scanner.nextInt();
System.out.print("请确定生成随机数的个数:");
int quantity = scanner.nextInt();
int[] arr = new int[quantity];
int count = 0;//计算大于60的个数
for (int i=0;i<quantity;i++) {
arr[i]= (int) (max * Math.random());
if (arr[i]>=60){
count++;
}
}
Arrays.sort(arr);
System.out.println("最大值是:"+arr[quantity-1]);
System.out.println("最小值是:"+arr[0]);
System.out.println("大于60的有:"+count+"个。");
System.out.println(Arrays.toString(arr));
}
}
运行后:
编码题三
题目 数组逆序操作:定义长度为10的数组,将数组元素对调,并输出对调前后的结果。
思路:把0索引和arr.length-1的元素交换,把1索引和arr.length-2的元素交换……
只要交换到arr.length/2的时候即可。
(这题简单,但不知道是否有更加优的方法呢?)
package dylan.ling.array.work;
import java.util.Arrays;
/**
* @author DYLAN
* 数组内容对调
*/
public class ArraySwop {
public static void main(String[] args){
int[] a = {1,2,3,4,5,6,7,8,9,0};
int temp;
System.out.print("原数组为:");
System.out.println(Arrays.toString(a));
for(int i=0;i<a.length/2;i++){
temp = a[i];
a[i] = a[a.length-1-i];
a[a.length-1-i] = temp;
}
System.out.println("交换后数组为:");
System.out.println(Arrays.toString(a));
}
}
运行结果:
更新你的思想,你就能获得新生!
———— by Linger