Skip to content

C programs on Loops

Practice programs on Loops

1. C program to print all natural numbers from 1 to n using while loop:

#include <stdio.h>
 
int main()
{
    int i, end;
 
    /*
     * Input a number from user
     */
    printf("Print all natural numbers from 1 to : ");
    scanf("%d", &end);
 
    /*
     * Print natural numbers from 1 to end
     */
    i=1;
    while(i<=end)
    {
        printf("%d\n", i);
        i++;
    }
 
    return 0;
}

*******************************************************

2. C program to print natural numbers in reverse from n to 1 using while loop:

#include <stdio.h>
 
int main()
{
    int n;
 
    /*
     * Input a number from user
     */
    printf("Enter value of n: ");
    scanf("%d", &n);
 
    while(n>=1)
    {
        printf("%d\n", n);
        n--;
    }
 
    return 0;
}

*******************************************************

3. C program to print alphabets from a to z using while loop:

#include <stdio.h>
 
int main()
{
    char ch = 'a';
 
    printf("Alphabets from a - z are: \n");
    while(ch<='z')
    {
        printf("%c\n", ch);
        ch++;
    }
 
    return 0;
}

******************************************************

4. C program to print all odd numbers from 1 to n using for loop:

#include <stdio.h>
 
int main()
{
    int i, n, sum=0;
 
    /* Input range to find sum of odd numbers */
    printf("Enter upper limit: ");
    scanf("%d", &n);
 
    /* Find the sum of all odd number */
    for(i=1; i<=n; i+=2)
    {
        sum += i;
    }
 
    printf("Sum of odd numbers = %d", sum);
 
    return 0;
}

*********************************************************

5. C program to print multiplication table of a given number using for loop:

#include <stdio.h>
 
int main()
{
    int i, num;
 
    /* Input a number to print table */
    printf("Enter number to print table: ");
    scanf("%d", &num);
 
    for(i=1; i<=10; i++)
    {
        printf("%d * %d = %d\n", num, i, (num*i));
    }
 
    return 0;
}

***************************************************************

6. C program to print multiplication table from 1 to 5 using Nested loop:

#include <stdio.h>
 
int main()
{
    /* Loop counter variable declaration */
    int i, j;
 
    /* Outer loop */
    for(i=1; i<=10; i++)
    {
        /* Inner loop */
        for(j=1; j<=5; j++)
        {
            printf("%d\t", (i*j));
        }
 
        /* Print a new line */
        printf("\n");
    }
 
    return 0;
}

*************************************************************

7. Program to add numbers until the user enters zero using do..while loop:

#include <stdio.h>
int main()
{
    double number, sum = 0;
 
    // the body of the loop is executed at least once
    do
    {
        printf("Enter a number: ");
        scanf("%lf", &number);
        sum += number;
    }
    while(number != 0.0);
 
    printf("Sum = %.2lf",sum);
 
    return 0;
}

*****************************************************

8. C program to find all factors of a number:

#include <stdio.h>
 
int main()
{
    int i, num;
 
    /* Input number from user */
    printf("Enter any number to find its factor: ");
    scanf("%d", &num);
 
    printf("All factors of %d are: \n", num);
 
    /* Iterate from 1 to num */
    for(i=1; i<=num; i++)
    {
        /* 
         * If num is exactly divisible by i
         * Then i is a factor of num
         */
        if(num % i == 0)
        {
            printf("%d, ",i);
        }
    }
 
    return 0;
}

*********************************************************************

9. C program to find factorial of a number:

#include <stdio.h>
 
int main()
{
    int i, num;
    unsigned long long fact=1LL;
 
    /* Input number from user */
    printf("Enter any number to calculate factorial: ");
    scanf("%d", &num);
 
    /* Run loop from 1 to num */
    for(i=1; i<=num; i++)
    {
        fact = fact * i;
    }
 
    printf("Factorial of %d = %llu", num, fact);
 
    return 0;
}

****************************************************************

10. C program to check whether a number is palindrome or not:

#include <stdio.h>
 
int main()
{
    int n, num, rev = 0;
 
    /* Input a number from user */
    printf("Enter any number to check palindrome: ");
    scanf("%d", &n);
 
    /* Copy original value to 'num' to 'n'*/
    num = n; 
 
    /* Find reverse of n and store in rev */
    while(n != 0)
    {
        rev = (rev * 10) + (n % 10);
        n  /= 10;
    }
 
    /* Check if reverse is equal to 'num' or not */
    if(rev == num)
    {
        printf("%d is palindrome.", num);
    }
    else
    {
        printf("%d is not palindrome.", num);
    }
 
    return 0;
}

****************************************************************

11. C program to reverse order of words in a string:

#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100 // Maximum string size
 
int main()
{
    char str[100], reverse[100];
    int len, i, index, wordStart, wordEnd;
 
    printf("Enter any string: ");
    gets(str);
 
    len   = strlen(str);
    index = 0;
 
    // Start checking of words from the end of string
    wordStart = len - 1;
    wordEnd   = len - 1;
 
    while(wordStart > 0)
    {
        // If a word is found
        if(str[wordStart] == ' ')
        {
            // Add the word to the reverse string
            i = wordStart + 1;
            while(i <= wordEnd)
            {
                reverse[index] = str[i];
 
                i++;
                index++;
            }
            reverse[index++] = ' ';
 
            wordEnd = wordStart - 1;
        }
 
        wordStart--;
    }
 
    // Finally add the last word
    for(i=0; i<=wordEnd; i++)
    {
        reverse[index] = str[i];
        index++;
    }
 
    // Add NULL character at the end of reverse string
    reverse[index] = '\0'; 
 
    printf("Original string \n%s\n\n", str);
    printf("Reverse ordered words \n%s", reverse);
 
    return 0;
}

**********************************************************

12. C program to count frequency of digits in an integer:

#include <stdio.h>
#define BASE 10 /* Constant */
 
int main()
{
    long long num, n;
    int i, lastDigit;
    int freq[BASE];
 
    /* Input number from user */
    printf("Enter any number: ");
    scanf("%lld", &num);
 
    /* Initialize frequency array with 0 */
    for(i=0; i<BASE; i++)
    {
        freq[i] = 0;
    }
 
    /* Copy the value of 'num' to 'n' */
    n = num; 
 
    /* Run till 'n' is not equal to zero */
    while(n != 0)
    {
        /* Get last digit */
        lastDigit = n % 10;
 
        /* Remove last digit */
        n /= 10;
 
        /* Increment frequency array */
        freq[lastDigit]++;
    }
 
    /* Print frequency of each digit */
    printf("Frequency of each digit in %lld is: \n", num);
    for(i=0; i<BASE; i++)
    {
        printf("Frequency of %d = %d\n", i, freq[i]);
    }
 
    return 0;
}

****************************************************************

13. C program to count number of digits in an integer:

#include <stdio.h>
 
int main()
{
    long long num;
    int count = 0;
 
    /* Input number from user */
    printf("Enter any number: ");
    scanf("%lld", &num);
 
    /* Run loop till num is greater than 0 */
    do
    {
        /* Increment digit count */
        count++;
 
        /* Remove last digit of 'num' */
        num /= 10;
    } while(num != 0);
 
    printf("Total digits: %d", count);
 
    return 0;
}

*************************************************************

14. C program to swap first and last digit of a number:

#include <stdio.h>
#include <math.h>
 
int main()
{
    int num, swappedNum;
    int firstDigit, lastDigit, digits;
 
    /* Input number from user */
    printf("Enter any number: ");
    scanf("%d", &num);
 
    /* Find last digit */
    lastDigit  = num % 10;
 
    /* Find total number of digit - 1 */
    digits     = (int)log10(num); 
 
    /* Find first digit */
    firstDigit = (int)(num / pow(10, digits)); 
 
    swappedNum  = lastDigit;
    swappedNum *= (int) pow(10, digits);
    swappedNum += num % ((int) pow(10, digits));
    swappedNum -= lastDigit;
    swappedNum += firstDigit;
 
    printf("Original number = %d", num);
    printf("Number after swapping first and last digit: %d", swappedNum);
 
    return 0;
}

**********************************************************************************

For more practice questions, go to  Questionnare.

Leave a Reply

Your email address will not be published. Required fields are marked *