C program to print all odd numbers from 1 to n

Write a C program to print all odd numbers from 1 to n using for loop. How to print odd numbers from 1 to n using loop in C programming. Logic to print odd numbers in a given range in C programming.

Example

Input

Input upper limit: 10

Output

Odd numbers between 1 to 10:
1, 3, 5, 7, 9

Required knowledge

Basic C programming, Relational operators, If statement, For loop

Logic to print odd numbers from 1 to n using if statement

Logic to print odd numbers is similar to logic to print even numbers.

Step by step descriptive logic to print odd numbers from 1 to n.

  1. Input upper limit to print odd number from user. Store it in some variable say N.
  2. Run a loop from 1 to N, increment loop counter by 1 in each iteration. The loop structure should look like for(i=1; i<=N; i++).
  3. Inside the loop body check odd condition i.e. if a number is exactly divisible by 2 then it is odd. Which is if(i % 2 != 0) then, print the value of i.

Program to print odd numbers using if statement

/**
 * C program to print all Odd numbers from 1 to n
 */

#include <stdio.h>

int main()
{
    int i, n;
    
    /* Input upper limit from user */
    printf("Print odd numbers till: ");
    scanf("%d", &n);

    printf("All odd numbers from 1 to %d are: \n", n);

    /* Start loop from 1 and increment it by 1 */
    for(i=1; i<=n; i++)
    {
        /* If 'i' is odd then print it */
        if(i%2!=0)
        {
            printf("%d\n", i);
        }
    }

    return 0;
}

Logic to print odd numbers from 1 to n without if statement

The above approach is not optimal approach to print odd numbers. Observe the above program for a while. You will notice that, I am unnecessarily iterating for even numbers, which is not our goal.

Step by step descriptive logic to print odd numbers without using if statement.

  1. Input upper limit to print odd number from user. Store it in some variable say N.
  2. Run a loop from 1 to N, increment it by 2 for each iteration. The loop structure should look like for(i=1; i&lt=N; i+=2).
  3. Inside the loop body print the value of i.

Program to display odd numbers without using if statement

/**
 * C program to display all odd numbers between 1 to n without using if statement
 */

#include <stdio.h>

int main()
{
    int i, n;
    
    /* Input upper limit from user */
    printf("Print odd numbers till: ");
    scanf("%d", &n);

    printf("All odd numbers from 1 to %d are: \n", n);

    /*
     * Start a loop from 1, increment it by 2.
     * For each repetition prints the number.
     */
    for(i=1; i<=n; i+=2)
    {
        printf("%d\n", i);
    }

    return 0;
}

Note: In the above program I have used shorthand assignment operator i+=2 which is equivalent to i = i + 2.

Output

Print odd numbers till: 100
All odd numbers from 1 to 100 are: 
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
47
49
51
53
55
57
59
61
63
65
67
69
71
73
75
77
79
81
83
85
87
89
91
93
95
97
99

Program to print odd numbers in given range

/**
 * C program to display all odd numbers in given range
 */

#include <stdio.h>

int main()
{
    int i, start, end;
    
    /* Input lower and upper limit from user */
    printf("Enter lower limit: ");
    scanf("%d", &start);
    printf("Enter upper limit: ");
    scanf("%d", &end);

    printf("All odd numbers from %d to %d are: \n", start, end);

    /* If start is not odd then make it odd */
    if(start%2==0)
    {
        start++;
    }

    /*
     * Initialize loop from start, increment it by 2.
     * For each repetition print the number.
     */
    for(i=start; i<=end; i+=2)
    {
        printf("%d\n", i);
    }

    return 0;
}

Output

Enter lower limit: 10
Enter upper limit: 20
All odd numbers from 10 to 20 are: 
11
13
15
17
19

Happy coding 😉