有趣·有料·有价值 江苏极刻知学信息技术有限公司 分析以下需求,并用代码实现 1.键盘录入 10 个整数存入数组中 2.定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧 3.定义一个方法传入一个 int 类型数组,输出这个数组中只出 现一次的数字及个数。
时间: 2024-02-12 12:06:25 浏览: 26
好的,以下是代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 1.键盘录入 10 个整数存入数组中
Scanner scanner = new Scanner(System.in);
int[] arr = new int[10];
System.out.println("请输入10个整数:");
for (int i = 0; i < 10; i++) {
arr[i] = scanner.nextInt();
}
// 2.将奇数放在数组的左侧,偶数放在数组的右侧
sortArray(arr);
// 3.输出这个数组中只出现一次的数字及个数
printSingleNum(arr);
}
// 将奇数放在数组的左侧,偶数放在数组的右侧
private static void sortArray(int[] arr) {
int left = 0;
int right = arr.length - 1;
while (left < right) {
while (left < right && arr[left] % 2 != 0) {
left++;
}
while (left < right && arr[right] % 2 == 0) {
right--;
}
if (left < right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
}
}
System.out.println("奇数在左侧,偶数在右侧的数组为:");
for (int num : arr) {
System.out.print(num + " ");
}
System.out.println();
}
// 输出这个数组中只出现一次的数字及个数
private static void printSingleNum(int[] arr) {
System.out.println("数组中只出现一次的数字及个数为:");
for (int i = 0; i < arr.length; i++) {
int count = 0;
for (int j = 0; j < arr.length; j++) {
if (arr[i] == arr[j]) {
count++;
}
}
if (count == 1) {
System.out.println(arr[i] + " 出现了 1 次");
}
}
}
}
```
这段代码实现了以下功能:
1. 键盘录入 10 个整数存入数组中
2. 定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧,并输出排序后的数组
3. 定义一个方法传入一个 int 类型数组,输出这个数组中只出现一次的数字及个数
注意事项:
- 为了方便输入,这里使用 Scanner 类进行键盘输入
- 第二个方法使用了双指针法进行排序
- 第三个方法使用了两层循环,效率可能不高,但是可以实现功能