1.有一个数组:8,4,2,1,23,344,12
1)循环输出数组的值——使用三种方式。
2)求数组中所有数值的和。
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arry = {8,4,2,1,23,344,12};
int total =0 ;
//for循环输出
System.out.println("for循环输出");
for(int i = 0 ; i<arry.length ; i++) {
System.out.print(arry[i] + " ");
total +=arry[i];
}
System.out.println();
//Arrays.toString函数输出
System.out.println("Arrays.toString函数输出");
System.out.print(Arrays.toString(arry) + " ");
System.out.println();
//foreach循环输出
System.out.println("foreach循环输出");
for(int a:arry)
System.out.print(a + " ");
System.out.println("\n数组所有元素的和为:" + total);
}
2.猜数游戏:从键盘中任意输入一个数据,判断数组中是否包含此数,要求每一个功能独立成方法。
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数:");
int number = getnumber();
int[] array = getarray();
if(surchnumber(number , array)) {
System.out.println("有");
}else {
System.out.println("没有");
}
}
/**
* 键盘输入一个数
*/
public static int getnumber() {
Scanner input = new Scanner(System.in);
int num = input.nextInt();
return num;
}
/**
* 判断输入的数是否存在在数组里
*/
public static boolean surchnumber(int num , int[] array) {
for(int i = 0 ; i<array.length ; i++) {
if(num == array[i]) {
return true;
}
}
return false;
}
/**
* 键盘输入数组
*/
public static int[] getarray() {
Scanner input = new Scanner(System.in);
System.out.println("请输入数组长度:");
int size = input.nextInt();
int[] array = new int[size];
for(int i = 1 ; i<=size ; i++) {
System.out.println("请输入第" + i + "个数:");
array[i-1] = input.nextInt();
}
return array;
}
3.找出两个数组中的差异元素并存入一个新的数组,假设每个数组内部都没有重复元素
int[] array1 = {1,2,3,4,5};
int[] array2 = {3,4,5,6,7};
finddifferent(array1,array2);
}
/**
*
*/
public static void finddifferent(int[] array1 , int[] array2) {
ArrayList different = new ArrayList();
for(int i =0 ; i<array1.length ; i++) {
for(int j = 0 ; j<array2.length ; j++) {
if(array1[i] == array2[j]) {
different.add(array1[i]);
}
}
}
System.out.println("相同元素为:" );
for(int i = 0 ; i<different.size() ; i++) {
System.out.print((int) different.get(i) + ",");
}
4.取1-100的10个随机数存入数组中,要求数据不能重复
public static void main(String[] args) {
// TODO Auto-generated method stub
getrandom();
}
/**
*
*/
public static void getrandom() {
int num;
int[] number =new int[10];
loop:for(int i =0 ; i<10 ; i++) {
num = (int)(Math.random()*99 +1);
for(int j = 0 ; j<i ; j++) {
if(num == number[j]) {
i--;
continue;
}
number[i] = num;
}
}
System.out.println(Arrays.toString(number));
}
5. 设计一个方法,将数组中的数据打乱顺序
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] list = new int[10];
for(int i = 0 ; i<list.length ; i++) {
list[i] = (int)(Math.random()*100);
}
System.out.println("打乱前" + Arrays.toString(list));
shuffling(list);
System.out.println("打乱后" +Arrays.toString(list) );
}
public static void shuffling(int[] list) {
for(int i = 0 ; i<list.length ; i++) {
int index = (int)(Math.random()*list.length);
int temp = list[i];
list[i] = list[index];
list[index] = temp;
}
}
6.n(自定义输入)个人围成一圈,并依次编号1-n,从编号为1的人开始按顺时针方向每隔一人选出一个,剩下的人重新围成一圈,如此循环,直到只剩下1,2人,如果你想成为这两个幸运儿,问:最开始你应该站在什么位置.
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入人数");
int num = input.nextInt();
lockeydog(num);
}
public static void lockeydog(int number) {
int[] person = new int[number] ;
int i = 0;
boolean flag = true;//判断奇、偶数的标志
int out_nmber = 0;//已出局人数
while(true) {
if(person[i] == 0) { //判断此人是否还在。(一开始数组元素全部为0,当此人出局时,会被赋为1)
if(out_nmber == (number-1)) //判断是否还剩最后一个人
break;
flag = !flag;
if(flag) { //判断是否出局。(true表示每轮的偶数号的人,false表示每轮的奇数号的人,如果为偶数号的人就出局)
person[i] = 1 ;//赋为1,表示出局
out_nmber++;//出局人数加1
}
}
i++;
i%=number;//走到最后一个人时,i变为0 ,循环下一轮
}
System.out.printf("应该站在位置:%d\n", i + 1);
}