# Printing Integers

Written By -

### Printing integers :

Syntax for printing integers in C:

```
printf(“%d”, variableName);

printf(“%i”, variableName);

```

We can use both %d and %i in the printf() function to print integers. Both give the same output.

The code snippet below shows how we can print integers using %d and %i :

```
#include <stdio.h>

int  main()

{

int  num1 = 10;

int  num2 = 5;

printf("num1: %d \n", num1);

printf("num2: %i \n", num2);

return  0;

}

```

The code snippet gives the following output:

```
num1: 10

num2: 5

```

As we can observe from the output, printing integers using printf() function can be done using either %d or %i.

However, %d and %i behave differently while inputting integers using the scanf() function.

We will understand how they work differently using the below code snippet:

```
#include <stdio.h>
int  main()

{

int  num1, num2;

printf("Enter num1:");

scanf("%d", & amp; num1); // reading num1 using %d

printf("Enter num2:");

scanf("%i", & amp; num2); //reading num2 using %i

printf("num1: %d \n", num1);

printf("num2: %d \n", num2);

return  0;

}```

The code snippet has the following input and output:

```
Enter num1: 010

Enter num2: 010

num1: 10

num2: 8

```
• We have created two integer variable num1 and num2
• We input num1 using %d and num2 using %i
• When we enter 010 for num1 it ignores the first 0 and treats it as decimal 10 as we are using %d. Therefore, %d treats all numbers as decimal numbers.
• When we enter 010 for num2 it sees the leading 0 and parses it as octal 010 as we are using %i. %i does not treat all numbers as decimal numbers.
• However, since we are printing both num1 and num2 using %d, which means decimal, we get the output as 8 for 010 stored in num2 as 010 is the decimal equivalent of octal number 010.

Related Posts: