/*
1.键盘录入10个整数存入数组中
2.定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧
3.定义一个方法打印原数组和处理后的数组
4.定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数
*/
public class Test04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入整数");
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
int[] arrtemp = getarr(arr); //调用第一个方法转换奇数偶数
print(arr, arrtemp);//调用第二个方法演示
intarr(arr);//第三种方法
}
//第一个方法
public static int[] getarr(int[] arr) {
int[] arr1 = new int[arr.length]; //常见一个存放变化后的数组
int[] temp1 = new int[arr.length];//创建一个临时存放数组
int[] temp2 = new int[arr.length];//创建一个临时数组
int s = 0, b = 0, e = 0;
for (int i = 0; i < arr.length; i++) {
if ((arr[i] - 1) % 2 == 0) { // 奇数
temp1[s] = arr[i];
s++;//记数
}
if (arr[i] % 2 == 0) {// 偶数
temp2[b] = arr[i];
b++;//记数
}
}
for (int i = 0; i < arr1.length; i++) {
if (i < s) { //判断前s个元素写入数组
arr1[i] = temp1[i];
// System.out.println(arr1);
}
if ((i - s) >= 0 && (i - s) <= b) //判断后sb个元素写入数组
arr1[i] = temp2[e++];
}
return arr1;
}
//第二个 方法 打印
public static void print(int[] arr, int[] arrtemp) {
System.out.print("原数组:{");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.print(arr[i] + "}");
} else {
System.out.print(arr[i] + ",");
}
}
System.out.println();
System.out.print("新数组:{");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.print(arrtemp[i] + "}");
} else {
System.out.print( arrtemp[i] + ",");
}
}
}
//第三个方法
public static void intarr(int[] arr) {
//int[] arr = { 32, 11, 77, 22, 20, 11, 77, 77, 11, 32 };
int n = 0;
int[] temp = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
if (arr[i] == 0 )
n++;
}
System.out.println();
System.out.print("统 计:{");
for (int i = 0; i < arr.length; i++) {
int b = 1;
for (int a = i + 1; a < arr.length; a++) {
if (arr[i] == arr[a]) { // 遍历比较重复数为true
arr[a] = 0;// 当为重复的数时,赋值0
b++;// 重复记数
}
}
if (arr[i] != 0) { // 判断当遍历时 不等于0时为true
temp[i] = b;// 将重复的元素的记数同步写入新的数组
}
if (temp[i] == 1) { // 判断如果等于0则不输出
String num = arr[i] + "有" + (temp[i])+"个";
if (i == arr.length-1) {
System.out.print(num);
} else {
System.out.print(num+",");