Tutorials
Examples
Tests

# C++ Program to Interchange the Digits of a Number

In this article, you will learn and get code to interchange the digits of a number entered by user at run-time in C++. Here are the list of programs available in this article:

• Interchange First and Last Digit of a Number
• Interchange First and Last Digit of a Number using Array
• Interchange any Two Digits of a Number

## Interchange First and Last Digit of a Number

To interchange first and last digit of a number in C++ programming, you have to ask from user to enter the number. And then interchange its first and last digit as shown in the program given below:

The question is, write a program in C++ to interchange first and last digit of a number. Here is its answer:

```#include<iostream>
using namespace std;
int main()
{
int num, rem, temp, rev=0, noOfDigit=0;
int noOfDigitTemp, revNum, remTemp;
cout<<"Enter the Number: ";
cin>>num;
temp = num;
while(temp>0)
{
temp = temp/10;
noOfDigit++;
}
if(noOfDigit<2)
{
cout<<"\nIt is a Single-digit Number!";
cout<<"\nTry again with a Number with Two or More Digits!";
}
else if(noOfDigit==2)
{
temp = num;
while(temp>0)
{
rem = temp%10;
rev = (rev*10)+rem;
temp = temp/10;
}
cout<<"\nFirst and Last Digit Interchanged Successfully!";
cout<<"\n\nNew Number = "<<rev;
}
else
{
temp = num;
while(temp>0)
{
rem = temp%10;
rev = (rev*10)+rem;
temp = temp/10;
}
revNum = rev;
rev = 0;
temp = num;
noOfDigitTemp = noOfDigit;
while(temp>0)
{
remTemp = revNum%10;
if(noOfDigitTemp==noOfDigit)
{
rem = temp%10;
rev = (rev*10)+rem;
}
else if(noOfDigitTemp==1)
{
rem = temp%10;
rev = (rev*10)+rem;
}
else
{
rev = (rev*10)+remTemp;
}
temp = temp/10;
revNum = revNum/10;
noOfDigitTemp--;
}
cout<<"\nFirst and Last Digit Interchanged Successfully!";
cout<<"\n\nNew Number = "<<rev;
}
cout<<endl;
return 0;
}```

This program was build and run under Code::Blocks IDE. Here is its sample run:

Now supply any number say 1234 and press `ENTER` to interchange the first (1) and last (4) digit of this number. After interchanging the first and last digits, print the new number as shown in the snapshot of sample run given below:

Here is another sample run with user input 12, a two-digit number:

Here is one more sample run with user input 3, a single-digit number:

Note - What if user enters a number ends with 0. Or if user enters a number that has 0 as its last digit. Then above program produces the following output in this case:

To solve this problem, we've another program for you. This program does the same job, but using an array. Let's have a look at the program given below.

### Interchange First and Last Digit using Array

This program does the same job, that is interchanging the first and last digit of a number given by user, using array.

```#include<iostream>
using namespace std;
int main()
{
int num, rem, temp, rev=0, noOfDigit=0, arr, i;
cout<<"Enter the Number: ";
cin>>num;
temp = num;
while(temp>0)
{
temp = temp/10;
noOfDigit++;
}
temp = num;
while(temp>0)
{
rem = temp%10;
rev = (rev*10)+rem;
temp = temp/10;
}
for(i=0; i<noOfDigit; i++)
{
rem = rev%10;
arr[i] = rem;
rev = rev/10;
}
if(noOfDigit==1)
{
cout<<"\nIt is a Single-digit Number!";
cout<<"\nTry again with a Number with Two or More Digits!";
}
else if(noOfDigit==2)
{
temp = arr;
arr = arr;
arr = temp;
cout<<"\nFirst and Last Digit Interchanged Successfully!";
cout<<"\n\nNew Number = "<<arr<<arr;
}
else
{
i=0;
temp = arr[i];
arr[i] = arr[noOfDigit-1];
arr[noOfDigit-1] = temp;
cout<<"\nFirst and Last Digit Interchanged Successfully!";
cout<<"\n\nNew Number = ";
for(i=0; i<noOfDigit; i++)
cout<<arr[i];
}
cout<<endl;
return 0;
}```

Here is its sample run with user input, 1230:

## Interchange any Two Digits of a Number

This program is created to interchange any two digit of a number. Any two digit means, you are free to interchange the digit at position say 2 with digit at position say 5:

For example, if user enters a number as 23706, and wants to interchange the digit at second position (3) with digit at fifth position (6). Then the new number after interchanging the required digit, will be 26703

```#include<iostream>
using namespace std;
int main()
{
int num, posFirst, posSecond;
int rem, temp, rev=0, noOfDigit=0, arr, i;
cout<<"Enter the Number: ";
cin>>num;
temp = num;
while(temp>0)
{
temp = temp/10;
noOfDigit++;
}
if(noOfDigit==1)
{
cout<<"\nIt is a Single-digit Number!";
cout<<"\nTry again with a Number with Two or More Digits!";
}
else
{
cout<<"\nInterchange the Digit at Position: ";
cin>>posFirst;
cout<<"With Digit at Position: ";
cin>>posSecond;
}
if(posFirst>noOfDigit || posSecond>noOfDigit)
cout<<"\nInvalid Position!";
else
{
temp = num;
while(temp>0)
{
rem = temp%10;
rev = (rev*10)+rem;
temp = temp/10;
}
for(i=0; i<noOfDigit; i++)
{
rem = rev%10;
arr[i] = rem;
rev = rev/10;
}
i=0;
temp = arr[posFirst-1];
arr[posFirst-1] = arr[posSecond-1];
arr[posSecond-1] = temp;
cout<<"\nDigits Interchanged Successfully!";
cout<<"\n\nNew Number = ";
for(i=0; i<noOfDigit; i++)
cout<<arr[i];
}
cout<<endl;
return 0;
}```

Here is its sample run with user input, 123403 as number, 3 and 5 as digit position to interchange:

#### Same Program in Other Languages

C++ Online Test

« Previous Program Next Program »