C Program to Print Diamond Patterns.

In this C programming tutorial, we will explore how to print diamond patterns using loops. 


The diamond pattern consists of two inverted right-angled triangles joined at the base. These patterns are a classic example of nested loops, where we use loops inside loops to control the pattern's structure.


Here we are going to print two different types of Diamond Patterns:

Pattern 1: Diamond Pattern with Asterisks.

C Code:

//C program to print diamond patterns
#include <stdio.h>

int main() {
    int rows, i, j, space;
    printf("Enter the number of rows: ");
    scanf("%d", &rows);

    // Upper half of the diamond
    for (i = 1; i <= rows; i++) {
        for (space = 1; space <= rows - i; space++) {
            printf(" ");
        }
        for (j = 1; j <= 2 * i - 1; j++) {
            printf("*");
        }
        printf("\n");
    }

    // Lower half of the diamond
    for (i = rows - 1; i >= 1; i--) {
        for (space = 1; space <= rows - i; space++) {
            printf(" ");
        }
        for (j = 1; j <= 2 * i - 1; j++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}
Output:
Enter the number of rows: 7
      *
     ***
    *****
   *******
  *********
 ***********
*************
 ***********
  *********
   *******
    *****
     ***
      *

Pattern 2: Hollow Diamond Pattern.

C Code:

// C program to print hollow diamond shape
#include <stdio.h>

int main() {
    int rows, i, j, space;
    printf("Enter the number of rows: ");
    scanf("%d", &rows);

    // Upper half of the diamond
    for (i = 1; i <= rows; i++) {
        for (space = 1; space <= rows - i; space++) {
            printf(" ");
        }
        for (j = 1; j <= 2 * i - 1; j++) {
            if (j == 1 || j == 2 * i - 1) {
                printf("*");
            } else {
                printf(" ");
            }
        }
        printf("\n");
    }

    // Lower half of the diamond
    for (i = rows - 1; i >= 1; i--) {
        for (space = 1; space <= rows - i; space++) {
            printf(" ");
        }
        for (j = 1; j <= 2 * i - 1; j++) {
            if (j == 1 || j == 2 * i - 1) {
                printf("*");
            } else {
                printf(" ");
            }
        }
        printf("\n");
    }

    return 0;
}
Output:
Enter the number of rows: 6
     *
    * *
   *   *
  *     *
 *       *
*         *
 *       *
  *     *
   *   *
    * *
     *

C Program to Print Pyramid Patterns.

Patterns help us understand valuable insights into the logic and control flow required in programming. In this C programming tutorial, we are going to learn how to print different kinds of Pyramid patterns.

Here we are going to see 6 different kinds of Pyramid patterns with a C code for each of them:

Pattern 1: Left-aligned Pyramid Pattern.

Below is the C program to print a left-aligned pyramid pattern.
#include <stdio.h>

int main() {
    int n;

    printf("Enter the number of rows for the pyramid pattern: ");
    scanf("%d", &n);

    printf("\nPattern 1:\n");
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= i; j++) {
            printf("* ");
        }
        printf("\n");
    }

    return 0;
}
Output:
Enter the number of rows for the pyramid pattern: 5
Pattern 1:
* 
* * 
* * * 
* * * * 
* * * * * 


Pattern 2: Inverted Left-aligned Pyramid Pattern.

Below is the C program to print an Inverted left-aligned pyramid pattern.
#include <stdio.h>

int main() {
    int n;

    printf("Enter the number of rows for the pyramid pattern: ");
    scanf("%d", &n);

    for (int i = n; i >= 1; i--) {
        for (int j = 1; j <= i; j++) {
            printf("* ");
        }
        printf("\n");
    }

    return 0;
}
Output:
Enter the number of rows for the pyramid pattern: 5
* * * * * 
* * * * 
* * * 
* * 
* 

Pattern 3: Center-aligned Pyramid Pattern.

Below is the C program to print a Center-aligned pyramid pattern.
#include <stdio.h>

int main() {
    int n;

    printf("Enter the number of rows for the pyramid pattern: ");
    scanf("%d", &n);

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n - i; j++) {
            printf("  ");
        }
        for (int j = 1; j <= 2 * i - 1; j++) {
            printf("* ");
        }
        printf("\n");
    }

    return 0;
}
Output:
Enter the number of rows for the pyramid pattern: 5
        * 
      * * * 
    * * * * * 
  * * * * * * * 
* * * * * * * * * 

Pattern 4: Inverted Center-aligned Pyramid Pattern.

Below is the C program to print an Inverted Center-aligned pyramid pattern.
#include <stdio.h>

int main() {
    int n;

    printf("Enter the number of rows for the pyramid pattern: ");
    scanf("%d", &n);

    for (int i = n; i >= 1; i--) {
        for (int j = 1; j <= n - i; j++) {
            printf("  ");
        }
        for (int j = 1; j <= 2 * i - 1; j++) {
            printf("* ");
        }
        printf("\n");
    }

    return 0;
}
Output:
Enter the number of rows for the pyramid pattern: 6
* * * * * * * * * * * 
  * * * * * * * * * 
    * * * * * * * 
      * * * * * 
        * * * 
          * 


Pattern 5: Right-aligned Pyramid Pattern.

Below is the C program to print a Right-aligned pyramid pattern.
#include <stdio.h>

int main() {
    int rows;
    printf("Enter the number of rows: ");
    scanf("%d", &rows);

    for (int i = 1; i <= rows; i++) {
        for (int space = 1; space <= rows - i; space++) {
            printf(" ");
        }
        for (int j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}
Output:
Enter the number of rows: 5
    *
   **
  ***
 ****
*****


Pattern 6: Number Pyramid Pattern.

Below is the C program to print a Number pyramid pattern.
#include <stdio.h>

int main() {
    int rows;
    printf("Enter the number of rows: ");
    scanf("%d", &rows);

    for (int i = 1; i <= rows; i++) {
        for (int space = 1; space <= rows - i; space++) {
            printf(" ");
        }
        for (int j = 1; j <= i; j++) {
            printf("%d", j);
        }
        for (int j = i - 1; j >= 1; j--) {
            printf("%d", j);
        }
        printf("\n");
    }

    return 0;
}
Output:
Enter the number of rows: 5
    1
   121
  12321
 1234321
123454321

C Program to Convert Octal to Decimal.

In this C program tutorial, we are going to learn how to convert an Octal to a Decimal number. Let's understand the process with an example. 

Step-by-step Algorithm:

Step 1: Input the octal number from the user.
Step 2: Initialize the decimalNum variable to 0, and base variable to 1. The decimalNum will store the final decimal equivalent, and the base is used to keep track of the current place value (powers of 8).
Step 3: Convert octal to decimal using a while loop. In each iteration, we extract the last digit (remainder) of the octal number using the modulus operator %. Then, we multiply the digit with the current base value and add it to the decimalNum. We update the octalNum by removing the last digit (integer division by 10) and increasing the base by multiplying it by 8, which represents the next place value (8 raised to the power of the current position).
Step 4: Output the decimal equivalent of the octal number.

C Code:

//C program to Convert Octal to Decimal.
#include <stdio.h>

int main() {
    int octalNum, decimalNum = 0, base = 1, remainder;

    printf("Enter an octal number: ");
    scanf("%d", &octalNum);

    // Convert octal to decimal
    while (octalNum != 0) {
        // Extract the last digit
        remainder = octalNum % 10; 
        // Multiply digit with base and add to decimalNum
        decimalNum += remainder * base;
        // Remove the last digit
        octalNum /= 10; 
        // Increase base by a power of 8 for next digit
        base *= 8; 
    }

    printf("Decimal equivalent: %d\n", decimalNum);

    return 0;
}
Output:
Enter an octal number: 127
Decimal equivalent: 87

Time Complexity: O(log N)
Space Complexity: O(1)

How To Create a Sticky Header on Scroll?

A sticky header is a popular web design technique that keeps the header fixed at the top of the page, even as users scroll down the content. This provides a seamless user experience, making it easier for visitors to access important navigation options without having to scroll back to the top of the page. 

Here are steps that you can follow to Create a Sticky Header for your Webpage:


Step 1: Add the necessary HTML section.

To create a sticky header, we first need to set up the HTML structure. The header element typically contains the website logo, navigation menu, and other crucial elements. We can use the <header> tag to enclose these elements and ensure it's placed at the top of the <body> element.

HTML Code:

<!DOCTYPE html>
<html>
  <head>
    <title>Sticky Header Example</title>
  </head>
  <body>
    <header>
      <nav>
        <ul>
          <li><a href="#">Home</a></li>
          <li><a href="#">About</a></li>
          <li><a href="#">Services</a></li>
          <li><a href="#">Contact</a></li>
        </ul>
      </nav>
    </header>

    <main>
      <h1>Welcome to Our Website</h1>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non
        sapien vitae elit blandit bibendum a eu metus.
      </p>
      <!-- Add more content here -->
    </main>

    <footer>
      <p>&copy; 2023 Your Website. All rights reserved.</p>
    </footer>
  </body>
</html>

Step 2: Add the necessary CSS Style to fix the header on Scroll.

To make the header stick to the top of the page, we'll use CSS positioning. We can set the header's position to "fixed" to ensure it remains fixed relative to the viewport while users scroll down.

CSS Code:
header {
    position: fixed;
    top: 0;
    width: 100%;
    background-color: #ffffff;
    /* Add other styles such as height, 
    padding, and box-shadow as per your design */
}

If you want more control over the sticky header behavior, JavaScript can be used to add or remove the "sticky" class dynamically based on the user's scrolling behavior.

Javascript Code:
<script>
window.addEventListener('scroll', function() {
    const header = document.querySelector('header');
    if (window.scrollY > 0) {
        header.classList.add('sticky');
    } else {
        header.classList.remove('sticky');
    }
});
</script>

Below is the complete working example of a Sticky Header:
<!DOCTYPE html>
<html>
  <head>
    <title>Sticky Header Example</title>
    <style>
      body {
        margin: 0;
        padding: 0;
        font-family: Arial, sans-serif;
      }

      header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        background-color: #333;
        padding: 10px 20px;
        color: #fff;
      }

      nav ul {
        list-style: none;
        margin: 0;
        padding: 0;
      }

      nav li {
        display: inline-block;
        margin-right: 20px;
      }

      nav li a {
        text-decoration: none;
        color: #fff;
        font-size: 18px;
      }

      main {
        padding: 100px 20px;
        text-align: center;
      }

      h1 {
        font-size: 36px;
        margin-bottom: 20px;
      }

      footer {
        text-align: center;
        background-color: #333;
        color: #fff;
        padding: 10px;
      }

      /* Sticky header styles */
      header.sticky {
        position: fixed;
        top: 0;
      }
    </style>
  </head>
  <body>
    <header>
      <nav>
        <ul>
          <li><a href="#">Home</a></li>
          <li><a href="#">About</a></li>
          <li><a href="#">Services</a></li>
          <li><a href="#">Contact</a></li>
        </ul>
      </nav>
    </header>

    <main>
      <h1>Welcome to Our Website</h1>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non
        sapien vitae elit blandit bibendum a eu metus. Lorem ipsum dolor sit
        amet, consectetur adipiscing elit. Phasellus non sapien vitae elit
        blandit bibendum a eu metus. Lorem ipsum dolor sit amet, consectetur
        adipiscing elit. Phasellus non sapien vitae elit blandit bibendum a eu
        metus. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
        Phasellus non sapien vitae elit blandit bibendum a eu metus. Lorem ipsum
        dolor sit amet, consectetur adipiscing elit. Phasellus non sapien vitae
        elit blandit bibendum a eu metus. Lorem ipsum dolor sit amet,
        consectetur adipiscing elit. Phasellus non sapien vitae elit blandit
        bibendum a eu metus. Lorem ipsum dolor sit amet, consectetur adipiscing
        elit. Phasellus non sapien vitae elit blandit bibendum a eu metus. Lorem
        ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non sapien
        vitae elit blandit bibendum a eu metus. Lorem ipsum dolor sit amet,
        consectetur adipiscing elit.
      </p>
      <h3>Coding is Great</h3>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non
      sapien vitae elit blandit bibendum a eu metus. Lorem ipsum dolor sit amet,
      consectetur adipiscing elit. Phasellus non sapien vitae elit blandit
      bibendum a eu metus. Lorem ipsum dolor sit amet, consectetur adipiscing
      elit. Phasellus non sapien vitae elit blandit bibendum a eu metus. Lorem
      ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non sapien
      vitae elit blandit bibendum a eu metus. Lorem ipsum dolor sit amet,
      consectetur adipiscing elit. Phasellus non sapien vitae elit blandit
      bibendum a eu metus. Lorem ipsum dolor sit amet, consectetur adipiscing
      elit. Phasellus non sapien vitae elit blandit bibendum a eu metus. Lorem
      ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non sapien
      vitae elit blandit bibendum a eu metus. Lorem ipsum dolor sit amet,
      consectetur adipiscing elit. Phasellus non sapien vitae elit blandit
      bibendum a eu metus. Lorem ipsum dolor sit amet, consectetur adipiscing
      elit. Phasellus non sapien vitae elit blandit bibendum a eu metus. Lorem
      ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non sapien
      vitae elit blandit bibendum a eu metus. Lorem ipsum dolor sit amet,
      consectetur adipiscing elit. Phasellus non sapien vitae elit blandit
      bibendum a eu metus. Lorem ipsum dolor sit amet, consectetur adipiscing
      elit.
    </main>

    <footer>
      <p>&copy; 2023 Your Website. All rights reserved.</p>
    </footer>
  </body>
  <script>
    // JavaScript to make the header sticky
    window.addEventListener("scroll", function () {
      const header = document.querySelector("header");
      if (window.scrollY > 0) {
        header.classList.add("sticky");
      } else {
        header.classList.remove("sticky");
      }
    });
  </script>
</html>
Output:
Sticky Header Example

Pro-Tip: For simple cases, where you need the header to stick only during a certain scroll range, the CSS position: sticky property can be used.

CSS Code:

header {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    width: 100%;
    background-color: #ffffff;
    /* Add other styles as per your design */
}

C Program to Convert Binary to Decimal.

Write a C program to convert a binary number to its decimal equivalent. 
Let's understand the processing of converting a binary number to a decimal number with one example.

Example: 
Input: binaryNum = 10101
Output: 22

Explanation:
remainder = 10101 % 10 = 1, 
decimal = 1 * 1 = 1, base = 1 * 2 = 2, 
binaryNum = 1010

remainder = 1010 % 10 = 0, 
decimal = 0 * 2 + 1 * 2 = 2, base = 2 * 2 = 4, 
binaryNum = 101

remainder = 101 % 10 = 1, 
decimal = 1 * 4 + 2 * 1 = 6, base = 4 * 2 = 8, 
binaryNum = 10

remainder = 10 % 10 = 0, 
decimal = 0 * 8 + 6 * 1 = 6, base = 8 * 2 = 16, 
binaryNum = 1

remainder = 1 % 10 = 1, 
decimal = 1 * 16 + 6 * 1 = 22, base = 16 * 2 = 32, 
binaryNum = 0

Decimal equivalent = 22

Steps-by-step Algorithm:

Step 1: Take input of a binary number from the user.
Step 2: Initialize a variable decimal to store the decimal equivalent, initially set to 0.
Step 3: Initialize a variable base to store the current place value, initially set to 1.
Step 4: Extract the rightmost digit of the binary number using the modulo operator %.
Step 5: Multiply the extracted digit by base and add it to the decimal variable.
Step 6: Divide the binary number by 10 to remove the rightmost digit.
Step 7: Update the base value by multiplying it by 2, as we are moving to the next higher place value (binary is base-2 system).
Step 8: Repeat steps 4 to 7 until the binary number becomes 0.
Step 9: The value of the decimal variable will now be the decimal equivalent of the input binary number.

C code:
//C program to convert binary to decimal number
#include <stdio.h>

int main() {

    long long binaryNum;
    int decimal = 0, base = 1, remainder;

    printf("Enter a binary number: ");
    scanf("%lld", &binaryNum);

    //converting binary to decimal
    while (binaryNum != 0) {
        remainder = binaryNum % 10;
        decimal += remainder * base;
        base *= 2;
        binaryNum /= 10;
    }

    printf("Decimal equivalent: %d\n", decimal);

    return 0;
}
Output:
Enter a binary number: 11011
Decimal equivalent: 27

Time Complexity: The time complexity of the above code is O(log N), where N is the decimal equivalent of the binary number. 

Space Complexity: The space complexity of the above code is O(1), which means it uses a constant amount of additional space that does not depend on the input.

Related articles:

C Program to Convert Octal to Binary.

Given an octal number as input, write a C program to convert it to its equivalent binary representation.

Example:
Input: 52
Output: 101010

Input: 55
Output: 101101

  • Octal Number: An octal number is expressed in the base-8 numeral system, which uses the digits from 0 to 7.
  • Binary Number: A binary number is a number expressed in the base-2 numeral system, which uses only two symbols: 0 and 1.

C program to convert an Octal to a Binary Number.

//C code implementation to convert octal to binary
#include <stdio.h>

// Function to convert octal digit to binary
char* octalToBinary(char digit) {
    switch (digit) {
        case '0': return "000";
        case '1': return "001";
        case '2': return "010";
        case '3': return "011";
        case '4': return "100";
        case '5': return "101";
        case '6': return "110";
        case '7': return "111";
        default: return "";
    }
}

int main() {
    char octal[20];
    printf("Enter an octal number: ");
    scanf("%s", octal);

    // Convert octal to binary
    char binary[60] = "";
    for (int i = 0; octal[i] != '\0'; i++) {
        char* binaryDigit = octalToBinary(octal[i]);
        strcat(binary, binaryDigit);
    }

    printf("Binary Equivalent: %s", binary);

    return 0;
}
Output:
Enter an octal number: 63
Binary Equivalent: 110011

Time Complexity: O(n)
Space Complexity: O(n)

DON'T MISS

Tech News
© all rights reserved
made with by AlgoLesson