Question: Write a Java program to reverse an array in place. Size and values of the array should be given by the user. For reversal no extra array can be used.
My Answer:
import java.util.*;
import java.util.Scanner;
// Compiler version JDK 11.0.2
class Dcoder
{
public static void revArr(int[] arr){
int mid = arr.length/2;
int temp;
int j = arr.length-1;
for(int i=0;i
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
j--;
}
System.out.println("Reversed array is: ");
for(int k=0; k
System.out.println(arr[k]);
}
}
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int size;
System.out.println("Enter the size of the array: ");
size = input.nextInt();
int arr[] = new int[size];
System.out.println("Enter " + size + " values for the array. ");
int i;
for(i=0;i
arr[i] = input.nextInt();
}
revArr(arr);
}
}
How Many Marks Out Of 20 Can I Get?
Thank You.
Answers
Answer:
This program reverse the array. For example if user enters the array elements as 1, 2, 3, 4, 5 then the program would reverse the array and the elements of array would be 5, 4, 3, 2, 1. To understand this program, you should have the knowledge of following Java Programming topics:
Arrays in Java
Java For loop
Java While loop
Example: Program to reverse the array
import java.util.Scanner;
public class Example
{
public static void main(String args[])
{
int counter, i=0, j=0, temp;
int number[] = new int[100];
Scanner scanner = new Scanner(System.in);
System.out.print("How many elements you want to enter: ");
counter = scanner.nextInt();
/* This loop stores all the elements that we enter in an
* the array number. First element is at number[0], second at
* number[1] and so on
*/
for(i=0; i<counter; i++)
{
System.out.print("Enter Array Element"+(i+1)+": ");
number[i] = scanner.nextInt();
}
/* Here we are writing the logic to swap first element with
* last element, second last element with second element and
* so on. On the first iteration of while loop i is the index
* of first element and j is the index of last. On the second
* iteration i is the index of second and j is the index of
* second last.
*/
j = i - 1;
i = 0;
scanner.close();
while(i<j)
{
temp = number[i];
number[i] = number[j];
number[j] = temp;
i++;
j--;
}
System.out.print("Reversed array: ");
for(i=0; i<counter; i++)
{
System.out.print(number[i]+ " ");
}
}
}
Output:
How many elements you want to enter: 5
Enter Array Element1: 11
Enter Array Element2: 22
Enter Array Element3: 33
Enter Array Element4: 44
Enter Array Element5: 55
Reversed array: 55 44 33 22 11
Check out these related java programs:
Java Program to Reverse words of a String
Java Program to reverse a String
Java Program to reverse a number