Write a program to store 15 numbers in an array. Then display all two digits number in ascending order using bubble sorting and also display how many such numbers found.
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
private static boolean isTwoDigitNumber(int num) {
return (num < -9 && num > -100) || (num > 9 && num < 100);
}
private static void doBubbleSort(int[] arr) {
boolean sorted = false;
int tmp;
while (!sorted) {
sorted = true;
for (int i = 0; i < arr.length - 1; i++) {
tmp = arr[i];
if (tmp > arr[i + 1]) {
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
sorted = false;
}
}
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int arr[] = new int[15];
int twoDigitCounter = 0;
System.out.println("Enter " + arr.length + " numbers:");
for (int i = 0; i < arr.length; i++) {
while (true) {
try {
arr[i] = input.nextInt();
if (isTwoDigitNumber(arr[i])) {
twoDigitCounter++;
}
break;
} catch (InputMismatchException e) {
System.out.println("The entered number is incorrect, please try again...");
input.next();
}
}
}
if (twoDigitCounter == 0) {
System.out.println("No two-digit numbers were found!");
return;
}
int newArr[] = new int[twoDigitCounter];
int i2 = 0;
for (int i = 0; i < arr.length; i++) {
if (isTwoDigitNumber(arr[i])) {
newArr[i2] = arr[i];
i2++;
}
}
doBubbleSort(newArr);
System.out.println("Found " + twoDigitCounter + " two-digit numbers:");
for (int i = 0; i < newArr.length; i++) {
System.out.print(newArr[i] + " ");
}
System.out.println();
}
}
Comments
Leave a comment