(一)分析以下需求,并用代码实现
1.键盘录入10个整数存入数组中
2.定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧
3.定义一个方法打印原数组和处理后的数组
4.定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数
public class xiaomi05 {
public static void main(String[] args) {
//键盘录入10个整数存入数组中
Scanner sc = new Scanner(System.in);
int[] arr = new int[10];
//创建一个新数组
int[] arr1 = new int[10];
//遍历数组
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入第" + (i + 1) + "个数值");
arr[i] = sc.nextInt();
}
Demo(arr, arr1);
array(arr, arr1);
int m = geshu(arr);
System.out.println("只出现过一次的个数有" + m + "个");
}
//2.定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧
public static void array(int arr[], int arr1[]) {
//定义奇数索引为0
int jishu = 0;
//定义偶数索引为数组长度减一
int oushu = arr1.length - 1;
//遍历数组,如果对2取余等于1,奇数索引++,反则偶数索引--,
for (int j = 0; j < arr.length; j++) {
if (arr[j] % 2 == 1) {
arr1[jishu] = arr[j];
jishu++;
} else {
arr1[oushu] = arr[j];
oushu--;
}
}
arr = arr1;
Demo(arr, arr1);
}
//3.定义一个方法打印原数组和处理后的数组
public static void Demo(int arr[], int arr1[]) {
System.out.print("[");
for (int c = 0; c < arr.length; c++) {
if (c == arr.length - 1) {
System.out.print(arr[c]);
} else {
System.out.print(arr[c] + ",");
}
}
System.out.println("]");
}
// 4.定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数
//[12,2,3,12]
public static int geshu(int arr[]) {
int jishuqi = 0;//计算这个数组中只出现过一次的数字
for (int v = 0; v < arr.length; v++) {
//把sss赋值成布尔类型,作为判断语句
boolean sss = true;
//将数组中的元素遍历寻找,如果索引相同就跳过并且h+1;然后继续循环,继续寻找
for (int h = 0; h < arr.length; h++) {
if (h == v) {
continue;
//如果数值相同,就把SSS赋值成false,跳出对比的小循环,进入大循环V+1后在进入小循环。
} else {
if (arr[h] == arr[v])
sss = false;
}
}//如果有相同的,将计数器数值加一个
if (sss) {
jishuqi++;
System.out.print(arr[v] + ",");
}
}//循环结束后,输出有多少个相同的
return jishuqi;
}
}