C program to replace all zeros with one in a given integer.

CServer Side ProgrammingProgramming

Problem

Write a program to replace all zeros (0's) with 1 in a given integer.

Given an integer as an input, all the 0's in the number has to be replaced with 1.

Solution

Consider an example given below −

Here, the input is 102410 and the output is 112411.

Algorithm

Refer an algorithm given below to replace all the 0’s to 1 in an integer.

Step 1 − Input the integer from the user.

Step 2 − Traverse the integer digit by digit.

Step 3 − If a '0' is encountered, replace it by '1'.

Step 4 − Print the integer.

Example

Given below is the C program to replace all 0's with 1 in a given integer −

 Live Demo

#include<stdio.h>
int replace(long int number){
   if (number == 0)
   return 0;
   //check last digit and change it if needed
   int digit = number % 10;
   if (digit == 0)
   digit = 1;
   // Convert remaining digits and append to its last digit
   return replace(number/10) * 10 + digit;
}
int Convert(long int number){
   if (number == 0)
      return 1;
   else
      return replace(number);
}
int main(){
   long int number;
   printf("\nEnter any number : ");
   scanf("%d", &number);
   printf("\nAfter replacement the number is : %dn", Convert(number));
   return 0;
}

Output

When the above program is executed, it produces the following output −

Enter any number: 1056110010
After replacement the number is: 1156111111
raja
Published on 26-Mar-2021 06:54:40
Advertisements