Write a C program to input 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. Logic to find first and last digit of a given number without using loop in C program.

**Example**

**Input**

Input number: 1234

**Output**

First digit: 1 Last digit: 4

## Required knowledge

Basic C programming, Arithmetic operators, While loop

## Logic to find last digit of a number

Before I explain logic to find first digit, let us first learn to find last digit of a number.

To find last digit of a number in programming we use modulo operator `%`

. A number when modulo divided by 10 returns its last digit.

Suppose if `n = 1234`

then `lastDigit = n % 10 => 4`

Let us implement the above logic to find last digit.

## Program to find last digit of a number

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

## Logic to find first digit of a number

Finding first digit of any number is little expensive than last digit. To find first digit of a number we divide the given number by `10` until number is greater than `10`. At the end we are left with the first digit.

Step by step description to find first digit of a number.

- Input a number from user. Store it in some variable say
`num`. - Copy the value of
`num`to some temporary variable say`first = num`

. - Divide
`first`by`10`, till`first >= 10`

. - Finally you are left with first digit in
`first`variable.

## Program to find first digit of a number

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

The above approaches to find first and last digit is easy to implement and learn. However, I use a different approach to find first or last digit.

## Logic to find first and last digit of a number

Step by step descriptive logic to find first and last digit of a number without loop.

- Input a number from user. Store it in some variable say
`num`. - Find last digit using modulo division by
`10`i.e.`lastDigit = num % 10`

. - To find first digit we have simple formula
`firstDigit = n / pow(10, digits - 1)`

. Where`digits`is total number of digits in given number.

## 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;
/* Input a number from user */
printf("Enter any number: ");
scanf("%d", &n);
/* Find last digit */
lastDigit = n % 10;
/* Total number of digits - 1 */
digits = (int)log10(n);
/* Find first digit */
firstDigit = (int)(n / pow(10, digits));
printf("First digit = %d\n", firstDigit);
printf("Last digit = %d\n", lastDigit);
return 0;
}
```

**Important note: ** `log10()`

is a mathematical function present in `math.h`

header file. It returns log base 10 value of the passed parameter to `log10()`

function.

Output

Enter any number: 1234 First digit = 1 Last digit = 4

Happy coding 😉

### Recommended posts

- Loop programming exercises index.
- C program to find sum of first and last digit of any number.
- C program to swap first and last digit of any number.
- C program to calculate sum of digits of a given number.
- C program to find product of digits of a given number.
- C program to find reverse of any number.
- C program to check whether a number is palindrome or not.

<pre><code> ----Your Source Code---- </code></pre>