java用户在数组中存入n个数,奇数输出1偶数输出0
时间: 2024-10-12 10:17:08 浏览: 32
在Java中,如果你有一个包含整数的数组,你想根据每个元素是否为奇数输出1或偶数输出0,你可以通过遍历数组并使用条件语句来实现这个逻辑。下面是一个简单的示例:
```java
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5, 6}; // 假设这是你要处理的数组
for (int num : numbers) {
if (num % 2 == 0) {
System.out.println(0); // 如果数字是偶数,输出0
} else {
System.out.println(1); // 如果数字是奇数,输出1
}
}
}
}
```
在这个例子中,我们使用`%`操作符检查每个数是否能被2整除。如果余数为0,说明它是偶数,输出0;否则它是奇数,输出1。
相关问题
java从键盘输入8个整数存放在一个数组中,然后将奇数和偶数分别存入到两个不同的数组中,并按奇数、偶数交替的顺序输出这两个数组中的所有数据 (先交替输出,如果奇数个数多,则再输出剩下的奇数,如果偶数个数多,则再输出剩下的偶数)。 奇数偶数俩数组 长度 加起来 不能超过8
可以按照以下步骤实现:
1. 创建一个长度为8的整型数组,从键盘输入8个整数并存入数组中。
2. 分别创建长度为4的奇数数组和偶数数组。
3. 遍历原始数组,将奇数存入奇数数组,偶数存入偶数数组。
4. 分别记录奇数和偶数数组中已经输出的元素个数,以及奇数和偶数数组的总元素个数。
5. 按照奇数、偶数交替的顺序输出数组元素,直到所有元素都被输出。
代码如下:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] nums = new int[8];
System.out.println("请输入8个整数:");
for (int i = 0; i < nums.length; i++) {
nums[i] = input.nextInt();
}
int[] oddNums = new int[4];
int[] evenNums = new int[4];
int oddCount = 0;
int evenCount = 0;
int oddIndex = 0;
int evenIndex = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] % 2 == 1) {
oddNums[oddCount++] = nums[i];
} else {
evenNums[evenCount++] = nums[i];
}
}
int totalCount = oddCount + evenCount;
while (oddIndex < oddCount || evenIndex < evenCount) {
if (oddIndex < oddCount) {
System.out.print(oddNums[oddIndex++] + " ");
}
if (evenIndex < evenCount) {
System.out.print(evenNums[evenIndex++] + " ");
}
}
if (oddCount > evenCount) {
for (int i = oddIndex; i < oddCount; i++) {
System.out.print(oddNums[i] + " ");
}
} else if (evenCount > oddCount) {
for (int i = evenIndex; i < evenCount; i++) {
System.out.print(evenNums[i] + " ");
}
}
}
}
```
输入示例:
```
请输入8个整数:
1 2 3 4 5 6 7 8
```
输出示例:
```
1 2 3 4 5 6 7 8
```
用Java1.键盘录入10个整数存入数组中 2.定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧 3.定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数。
好的,让我来解答你的问题。
1. 用Java键盘录入10个整数存入数组中
可以使用Scanner类来实现键盘输入,代码如下:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
System.out.print("请输入第" + (i+1) + "个整数:");
arr[i] = scanner.nextInt();
}
System.out.println("输入的数组为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
```
2. 定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧
可以使用双指针法,在遍历数组时,用一个指针指向数组的头部,另一个指针指向数组的尾部,依次判断每个数的奇偶性,如果是奇数就将其放在左侧,如果是偶数就将其放在右侧。
代码如下:
```java
public static void oddEvenSort(int[] arr) {
int left = 0, right = arr.length - 1;
while (left < right) {
while (left < right && arr[left] % 2 == 1) {
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 i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
```
3. 定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数。
可以使用HashMap来统计每个数字出现的次数,然后再遍历一次数组,输出只出现一次的数字及个数。
代码如下:
```java
import java.util.HashMap;
public static void findSingleNum(int[] arr) {
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < arr.length; i++) {
if (map.containsKey(arr[i])) {
int count = map.get(arr[i]);
map.put(arr[i], count + 1);
} else {
map.put(arr[i], 1);
}
}
int singleCount = 0;
System.out.print("数组中只出现一次的数字有:");
for (Integer key : map.keySet()) {
if (map.get(key) == 1) {
singleCount++;
System.out.print(key + " ");
}
}
System.out.println("共" + singleCount + "个");
}
```
完整代码如下:
```java
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
System.out.print("请输入第" + (i+1) + "个整数:");
arr[i] = scanner.nextInt();
}
System.out.println("输入的数组为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
oddEvenSort(arr);
findSingleNum(arr);
}
public static void oddEvenSort(int[] arr) {
int left = 0, right = arr.length - 1;
while (left < right) {
while (left < right && arr[left] % 2 == 1) {
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 i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
public static void findSingleNum(int[] arr) {
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < arr.length; i++) {
if (map.containsKey(arr[i])) {
int count = map.get(arr[i]);
map.put(arr[i], count + 1);
} else {
map.put(arr[i], 1);
}
}
int singleCount = 0;
System.out.print("数组中只出现一次的数字有:");
for (Integer key : map.keySet()) {
if (map.get(key) == 1) {
singleCount++;
System.out.print(key + " ");
}
}
System.out.println("共" + singleCount + "个");
}
}
```
希望我的回答能够帮助到你。
阅读全文