C Program: Swap Two Numbers

Swapping of two numbers is one of the many classic programming examples given in the original text on the subject, The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie (Chap. 4, 'Functions and Program Structure').

There's more than one way to go about writing a program to swap or interchange the values of two given numbers in C. However, to begin with, we will explore only a couple of programs using simple assignment and arithmetic operators and keep the use of bitwise XOR operator and pointers for a different page.

In our first program below, we will be making use of a temporary (or third) variable called temp. When you run the program and input the first number as 2 and the second number as 3, the program will swap their values and their resulting values will be interchanged. The first number will become 3 and the second number will become 2.

				
				#include <stdio.h>
				int main() {
					int a, b, temp;
				    printf("Enter the first number: ");
				    scanf("%d", &a);
				    printf("Enter the second number: ");
				    scanf("%d", &b);
				    temp = a;
				    a = b;
				    b = temp;
				    printf("The value of the first number is %d", a);
				    printf("\n");
				    printf("The value of the second number is %d", b);
				    printf("\n");
					return 0;
				}
				
			

Without temp

We can also achieve the same without the use of temporary variable.

					
					#include <stdio.h>
					int main() {
						int a, b;
					    printf("Enter the first number: ");
					    scanf("%d", &a);
					    printf("Enter the second number: ");
					    scanf("%d", &b);
					    a = a + b;
					    b = a - b;
					    a = a - b;
					    printf("The value of the first number is %d", a);
					    printf("\n");
					    printf("The value of the second number is %d", b);
					    printf("\n");
						return 0;
					}