Write a C program to enter a number from user and find first and last digit of number using loop. How to find first and last digit of a number in C programming. Calculating first and last digit of any number using loop in C programming.

Input number: 1234

Output first digit: 1

Output last digit: 4

Lets suppose if n = 1234

Last digit = n % 10 = 4

Happy coding ;)

**Example:**Input number: 1234

Output first digit: 1

Output last digit: 4

### Required knowledge

Basic C programming, For loop### Logic to find last digit of number

Finding the last digit of any number is the simplest task then finding the first digit. For this we just need to perform modulus operation. Last digit of any number is the result obtained by the modular division of given number by 10.Lets suppose if n = 1234

Last digit = n % 10 = 4

### Program to find last digit

/** * C program to find last digit of a number */ #include <stdio.h> int main() { int n, lastDigit; /* Reads number from user */ printf("Enter any number: "); scanf("%d", &n); /* Gets the last digit of number */ lastDigit = n % 10; printf("\nLast digit = %d", lastDigit); return 0; }

Output

Enter any number: 1234

Last digit = 4

Last digit = 4

### Logic to find first digit of number

Finding first digit of any number is little complex than finding last digit. Here what we need to do is, divide the number by 10 till it is greater or equal to 10. And at the end we are left with the first digit### Program to find first digit

/** * C program to find first digit of a number */ #include <stdio.h> int main() { int n; /* Reads number from user */ printf("Enter any number: "); scanf("%d", &n); /* Removes last digit from number till only one digit is left */ while(n>=10) { n = n / 10; } printf("\nFirst digit = %d", n); return 0; }

Output

Enter any number: 1234

First digit = 1

First digit = 1

You can also use the below approach to find the first and last digit of any number efficiently.

### Program to find first and last digit

/** * C program to find first and last digit of a number */ #include <stdio.h> #include <math.h> int main() { int n, firstDigit, lastDigit, digits; /* Reads a number from user */ printf("Enter any number: "); scanf("%d", &n); lastDigit = n % 10; //Gets last digit digits = (int)log10(n); //Total number of digits - 1 firstDigit = (int)(n / pow(10, digits)); //Gets the first digit printf("\nFirst digit = %d\n", firstDigit); printf("Last digit = %d\n", lastDigit); return 0; }

Output

Enter any number: 1234

First digit = 1

Last digit = 4

First digit = 1

Last digit = 4

Happy coding ;)

### You may also like

- Loop programming exercises index.
- C program to find sum of first and last digit of a number.
- C program to find reverse of a number.
- C program to check whether a number is palindrome or not.
- C program to find sum of all even numbers from 1 to 100.
- C program to print table of a given number.
- C program to find sum of digits of a number.
- C program to find product of digits of a number.
- C program to print number in words.
- C program to find HCF(GCD) of two numbers.
- C program to find LCM of two number.
- C program to check Prime number.
- C program to check Armstrong number.
- C program to check Strong number.
- C program to check Perfect number.

Hey man whats up ? I did this code and have a question. It gives the correct output when I find the last digit first and the first digit next but when I try to find the last digit after using loop to find the first digit it takes the input from the loop and keeps on giving the wrong output of the last digit. Is there any way to avoid this if you are finding the digits in a single program ? Thanks.

ReplyDeleteCan you show me your code. What actually you have written in your source code.

DeleteI did this after I found that getting the last digit after finding the first digit gave garbage value. So if I had to find the last digit after finding the first digit how do I avoid it from taking the input of n from the loop ? I am confused in that.

ReplyDelete#include

main()

{

int n, ld ;

printf("Enter any number : ");

scanf("%d", &n);

ld = n%10;

printf("The last digit of entered number is %d\n", ld);

while(n>=10)

{

n = n/10;

}

printf("The first digit of entered number is %d\n", n);

system("pause");

}

If you want to compute first digit prior to last digit, what you need to copy the value of n to another variable.

DeleteHere is a C program to find the first digit first and then last digit

Delete#include <stdio.h>

int main()

{

int n, temp, ld;

printf("Enter any number: ");

scanf("%d", &n);

temp = n;

while( n>=10 )

{

n = n / 10;

}

ld = temp % 10;

printf("First digit = %d\n", n);

printf("Last digit = %d", ld);

return 0;

}

oh thanks

ReplyDeleteyou are always welcome @Gaurav

Deleteif the number is 01234 then it'll return 1.. not 0

ReplyDeleteHello Abhi, yes it will return 1 because when you parse 01234 as an integer it regects the 0 in the start and accepts only 1234 as there is no meaning of 0 in beginning.

DeleteBut if you want to return 0 instead of 1 you shoud use strings to handle that. And returning the first character of the string.

ReplyDeleteconsider 2 numbers. write a program to swap the first digit of the first number with last digit of the second number. example input: a= 1234 b= 56789 output: a=9234 b=56781

Check it I have mentioned the same here in this post - C program to swap first and last digit of any number.

Delete