Navigation

Saturday, 28 February 2015

c program to reverse an array

This program reverses the array elements. For example if a is an array of integers with three elements
such that
a[0] = 1
a[1] = 2
a[2] = 3
then on reversing the array will be
a[0] = 3
a[1] = 2
a[0] = 1
Given below is the c code to reverse an array .

C programming code

#include<stdio.h>
 
main()
{
   int n, c, d, a[100], b[100];
 
   printf("Enter the number of elements in array\n");
   scanf("%d",&n);
 
   printf("Enter the array elements\n");
 
   for ( c = 0 ; c < n ; c++ )
      scanf("%d",&a[c]);
 
   for ( c = n - 1, d = 0 ; c >= 0 ; c--, d++ )
      b[d] = a[c];
 
   for ( c = 0 ; c < n ; c++ )
      a[c] = b[c];
 
   printf("Reverse array is\n");
 
   for( c = 0 ; c < n ; c++ )
      printf("%d\n", a[c]);
 
   return 0;
}
 

c program to reverse an array using pointers

#include<stdio.h>
#include<stdlib.h>
 
void reverse_array(int*, int);
 
main()
{
   int n, c, *pointer;
 
   scanf("%d",&n);
 
   pointer = (int*)malloc(sizeof(int)*n);
 
   if( pointer == NULL )
      exit(EXIT_FAILURE);
 
   for ( c = 0 ; c < n ; c++ )
      scanf("%d",(pointer+c));
 
   reverse_array(pointer, n);
 
   printf("Original array on reversal is\n");
 
   for ( c = 0 ; c < n ; c++ )
      printf("%d\n",*(pointer+c));
 
   free(pointer);
 
   return 0;
}
 
void reverse_array(int *pointer, int n)
{
   int *s, c, d;
 
   s = (int*)malloc(sizeof(int)*n);
 
   if( s == NULL )
      exit(EXIT_FAILURE);
 
   for ( c = n - 1, d = 0 ; c >= 0 ; c--, d++ )
      *(s+d) = *(pointer+c);
 
   for ( c = 0 ; c < n ; c++ )
      *(pointer+c) = *(s+c);
 
   free(s);
}

No comments:

Post a Comment