Tutorial Gateway

  • C
  • C#
  • Java
  • Python
  • SQL
  • MySQL
  • Js
  • BI Tools
    • Informatica
    • Talend
    • Tableau
    • Power BI
    • SSIS
    • SSRS
    • SSAS
    • MDX
    • R Tutorial
    • Alteryx
    • QlikView
  • More
    • C Programs
    • C++ Programs
    • Go Programs
    • Python Programs
    • Java Programs

C Program to Swap Two Arrays Without Using Temp Variable

by suresh

In this article, We are going to show you, C Program to Swap two Arrays without using Temp variable. Instead of using the third variable, we are going to use Arithmetic Operators and Bitwise Operators.

C Program to Swap Two Arrays Without Using Temp Variable

In this C program, Instead of using the temp or third variable to swap two arrays We are going to use Arithmetic Operators.

/* C Program to Swap Two Arrays Without Using Temp Variable */
#include<stdio.h>

int main()
{
 int Size, i, a[10], b[10], Temp[10];
  
 printf("\nPlease Enter the Size of the Array\n");
 scanf("%d", &Size);
 
 printf("\nPlease Enter the First Array Elements\n");
 for(i = 0; i < Size; i++)
  {
      scanf("%d", &a[i]);
  }
   
 printf("\nPlease Enter the Second Array Elements\n");
 for(i = 0; i < Size; i ++)
  {
      scanf("%d", &b[i]);
  }

 //Swapping two Arrays 
 for(i = 0; i < Size; i++)
  {
    a[i] = a[i] + b[i];
    b[i] = a[i] - b[i]; 
    a[i] = a[i] - b[i];
  }

 printf("\n a[%d] Array Elements After Swapping \n", Size); 
 for(i = 0; i < Size; i ++)
  {
      printf(" %d \t ",a[i]);
  }

printf("\n\n b[%d] Array Elements After Swapping \n", Size); 
 for(i = 0; i < Size; i ++)
  {
      printf(" %d \t ",b[i]);
  }

  return 0;
} 
C Program to Swap Two Arrays Without Using Temp Variable

In this C Program to Swap Two Arrays Without Using Temp Variable example, We declared three arrays or One-dimensional arrays a, b and Temp

Below printf statement asks the User to enter the arrays a, b size (Number of elements. For instance 4 elements = a[4])

printf("\n Please Enter the Size of the Array\n");

Below C Programming scanf statement will assign the user entered values to Size variable.

scanf("%d", &Size);

Below for loop will help to iterate each cell present in a[3] array. Condition inside the for loops (i < Size)) will ensure the compiler, not to exceed the array size. Otherwise, the Array will overflow

scanf statement inside the for loop will store the user entered values in every individual array element such as a[0], a[1], a[2]

for(i = 0; i < Size; i++)
  {
      scanf("%d", &a[i]);
  }

The below for loop will help to iterate every cell present in the b[2][3] matrix.

for(i = 0; i < Size; i++)
  {
      scanf("%d", &b[i]);
  }

User inserted values for this C Program to Swap Two Arrays Without Using Temp Variable example are
a[3] = {20, 50, 80} and
b[3] = {10, 35, 65}

First Iteration
The value of i will be 0, and the condition (i < 3) is True. So, it will start executing the Arithmetic Operator statements inside the loop until the condition fails.
a[i] = a[i] + b[i];
a[0] = a[0] + b[0] = 20 + 10 = 30

b[i] = a[i] – b[i];
b[0] = a[0] – b[0] = 30 – 10 = 20

a[i] = a[i] – b[i];
a[0] = a[0] – b[0] = 30 – 20 = 10

Second Iteration
The value of i will be 1, and the condition (i < 3) is True.
a[1] = a[1] + b[1] = 50 + 35 = 85
b[1] = a[1] – b[1] = 85 – 35 = 50
a[1] = a[1] – b[1] = 85 – 50 = 35

Third Iteration
i = 2, and the condition (i < 3) is True.
a[2] = a[2] + b[2] = 80 + 65 = 145
b[2] = a[2] – b[2] = 145 – 65 = 80
a[2] = a[2] – b[2] = 145 – 80 = 65

After the increment, the i value will be 3, and the condition (i < 3) will fail. So it will exit from the loop.

Next for loop,

for(i = 0; i < Size; i ++)
  {
      printf(" %d \t ",a[i]);
  }

Will traverse as we explained above, but instead of swapping two array number, it will display the values inside a[i] array using the printf statements array.

The Next for loop will traverse and display the values inside the b[i] array

for(i = 0; i < Size; i ++)
  {
      printf(" %d \t ",b[i]);
  }
The final output of the a[i] Array is:
a[3] = {10, 35, 65}{20, 50, 80}

The final output of the b[i] Array is:
b[3] = {20, 50, 80}

NOTE: Although we can swap two arrays using multiplication and division approach. However, they may produce strange values if we are working with larger integer values, or if any of the integer value is 0

C Program to Swap Two Arrays Using Bitwise Operator

In this C program, Instead of using the temp or third variable to swap two arrays We are going to use Bitwise OR Operator.

/* C Program to Swap Two Arrays Without Using Temp Variable */

#include<stdio.h>

int main()
{
 int Size, i, a[10], b[10], Temp[10];
  
 printf("\nPlease Enter the Size of the Array\n");
 scanf("%d", &Size);
 
 printf("\nPlease Enter the First Array Elements\n");
 for(i = 0; i < Size; i++)
  {
      scanf("%d", &a[i]);
  }
   
 printf("\nPlease Enter the Second Array Elements\n");
 for(i = 0; i < Size; i ++)
  {
      scanf("%d", &b[i]);
  }

 //Swapping two Arrays 
 for(i = 0; i < Size; i++)
  {
    a[i] = a[i] ^ b[i];
    b[i] = a[i] ^ b[i]; 
    a[i] = a[i] ^ b[i];
  }

 printf("\n a[%d] Array Elements After Swapping \n", Size); 
 for(i = 0; i < Size; i ++)
  {
      printf(" %d \t ",a[i]);
  }

printf("\n\n b[%d] Array Elements After Swapping \n", Size); 
 for(i = 0; i < Size; i ++)
  {
      printf(" %d \t ",b[i]);
  }

  return 0;
} 

C Program to Swap Two Arrays Without Using Temp Variable

We are just explaining the logic for the first variable only. Please refer to Bitwise Operators in C to understand how the bitwise operator works.

User Entered Values for this C Program to Swap Two Arrays Without Using Temp Variable example are a[0] = 8 and b[0] = 4. The binary values of 8 = 1000 and 4 = 0010.

a[0] = a[0] ^ b[0] => 1000 ^ 0010
a[0] = 1010

b[0] = a[0] ^ b[0]
b[0] = 1010 ^ 0010 = 1000

a[0] = a[0] ^ b[0];
a[0] = 1010 ^ 1000 = 0010

Final Values after swapping two arrays: a[0] = 4 and b[0] = 8.

Do the same for remaining values a[1], a[2], a[3] and b[1], b[2], b[3]

Placed Under: C Programs

  • C Hello World
  • C Add Two numbers
  • C Armstrong Number Program
  • C Convert Celsius to Fahrenheit
  • C Convert Decimal to Binary
  • C Convert Decimal to Octal
  • C Convert CM to Meter and KM
  • C Convert KM to M, CM & MM
  • C Convert Fahrenheit to Celsius
  • C Compound Interest Program
  • C Count Digits in a Number
  • C Count Notes in an Amount
  • C Cube of a Number
  • C Electricity Bill Program
  • C Factors of a Number Program
  • C Factorial of a Number Program
  • C GCD of Two Numbers
  • C Generic Root of a Number
  • C Gross Salary of an Employee
  • C Largest of Two Numbers
  • C Largest of Three numbers
  • C Last Digit Of a Number
  • C LCM of Two Numbers
  • C Leap Year program
  • C Multiplication Table program
  • C Natural Numbers from 1 to N
  • C Natural Numbers in reverse
  • C NCR Factorial of a Number
  • C Number is Divisible by 5 and 11
  • C Palindrome Program
  • C Palindrome String program
  • C Perfect Number Program
  • C Profit or Loss Program
  • C Print 1 to 100
  • C Print Prime Numbers 1 to 100
  • C Prime Number program
  • C Prime Factors of a Number
  • C Prime, Armstrong or Perfect
  • C Positive or Negative program
  • C Print Odd Numbers 1 to N
  • C Print Even Numbers 1 to N
  • C Print Integer, Char & Float
  • C Power of a Number program
  • C Product of Digits in a Number
  • C Roots of a Quadratic Equation
  • C Reverse a Number
  • C Simple Calculator Program
  • C Simple Interest
  • C Square of a Number
  • C Square Root of a Number
  • C Standard Deviation program
  • C Strong Number Program
  • C Student Grade program
  • C Sum of Odd Numbers program
  • C Sum of Even Nums program
  • C Sum of Even and Odd Nums
  • C Swap First & Last digit of Num
  • C Sum of First & Last digit Num
  • C Sum of Digits of a Number
  • C Sum of N Numbers Program
  • C Sum and Average of n Number
  • C Swap 2 Numbers
  • C Total, Avg & % of Five Subjects
  • C Quick Sort
  • C Selection Sort
  • C Insertion Sort
  • C Bubble Sort
  • C Fibonacci Series Program
  • C Nth Fibonacci number
  • C Sum of AP Series
  • C Sum of GP Series
  • C Sum of series 1³+2³+3³+….+n³
  • C Sum of series 1²+2²+3²+….+n²
  • C ASCII value of String chars
  • C Print Characters in a String
  • C Compare Two Strings
  • C Concatenate Two Strings
  • C Copy String
  • C String length program
  • C Convert String to Lowercase
  • C First Occurrence of string char
  • C First Occur of String Word
  • C Count Occur of string Char
  • C Count Alphabets, Digits & Special Chars
  • C Count Vowels & Consonants
  • C string remove all Occ of char
  • C remove 1st Occ of char in string
  • C remove last Occ char in string
  • C replace All Occ of char in string
  • C Replace last Occ of String Char
  • C Replace 1st occ char in string
  • C Reverse words Order in string
  • C Reverse a String
  • C Toggle Case of all char in string
  • C Array Arithmetic Operations
  • C Matrix Arithmetic Operations
  • C Count Frequency of array item
  • C Count Duplicate Array items
  • C Count +ve & -Ve Array items
  • C Count Even & Odd Array items
  • C Copy an Array to another
  • C Delete Duplicate Array items
  • C Delete an Element in an Array
  • C insert an Element in an Array
  • C 2nd largest Number in an Array
  • C Find Largest Array Number
  • C Find Smallest Array Number
  • C Largest & Smallest Array item
  • C Merge Two Arrays
  • C Print Unique Array Elements
  • C Print Arrayy Elements
  • C Print Negative Array Numbers
  • C Print Positive Array Numbers
  • C Put +ve & -Ve in 2 Arrays
  • C Put Even & Odd in 2 Arrays
  • C Program to Reverse an Array
  • C Search an Element in an Array
  • C Sum of array even, odd nums
  • C Sort Array in Ascending Order
  • C Sort Array in Descending
  • C Swap 2 Arrays without Temp
  • C Sum of all Array Elements
  • C Sum of each Matrix column
  • C sum of each row in a Matrix
  • C Sum of Matrix row & column
  • C Add Two Matrices
  • C Sparse Matrix
  • C Symmetric Matrix
  • C Identity Matrix
  • C Interchange Matrix Diagonals
  • C Check two Matrices Equal
  • C Lower Triangle of a Matrix
  • C Upper Triangle of a Matrix
  • C Sum of Lower Triangle Matrix
  • C Sum of Upper Triangle Matrix
  • C Subtract Two Matrices
  • C Transpose of a Matrix program
  • C Cuboid Volume & Surface Area
  • C Cone Volume & Surface Area
  • C Cube Volume & Surface Area
  • C Volume & Surface of Cylinder
  • C Volume & Surface of Sphere

Copyright © 2021 · All Rights Reserved by Suresh

About Us | Contact Us | Privacy Policy