10 Basic C Language Algorithms You Often Encounter

Algorithms are the soul of programs and software. As an excellent programmer, only by having a comprehensive grasp of some basic algorithms can one feel at ease in the process of designing programs and writing code. This article includes classic algorithms such as the Fibonacci sequence, a simple calculator, palindrome check, and prime check. They may come in handy in your design or interviews.

1. Calculate Fibonacci Sequence

The Fibonacci sequence, also known as the golden ratio sequence, refers to the following sequence: 1, 1, 2, 3, 5, 8, 13, 21.

The C language implementation code is as follows:

/* Displaying Fibonacci sequence up to nth term where n is entered by user. */#include <stdio.h>int main(){  int count, n, t1=0, t2=1, display=0;  printf("Enter number of terms: ");  scanf("%d",&n);  printf("Fibonacci Series: %d+%d+", t1, t2); /* Displaying first two terms */  count=2;    /* count=2 because first two terms are already displayed. */  while (count<n)    {      display=t1+t2;      t1=t2;      t2=display;      ++count;      printf("%d+",display);  }  return 0;}

Result Output::

Enter number of terms: 10Fibonacci Series: 0+1+1+2+3+5+8+13+21+34+

You can also use the source code below:

/* Displaying Fibonacci series up to certain number entered by user. */ #include <stdio.h>int main(){  int t1=0, t2=1, display=0, num;  printf("Enter an integer: ");  scanf("%d",&num);  printf("Fibonacci Series: %d+%d+", t1, t2); /* Displaying first two terms */  display=t1+t2;  while(display<num)  {      printf("%d+",display);      t1=t2;      t2=display;      display=t1+t2;  }  return 0;}

Result Output:

Enter an integer: 200Fibonacci Series: 0+1+1+2+3+5+8+13+21+34+55+89+144+

2. Palindrome Check

Source Code:

/* C program to check whether a number is palindrome or not */ #include <stdio.h>int main(){  int n, reverse=0, rem,temp;  printf("Enter an integer: ");  scanf("%d", &n);  temp=n;  while(temp!=0)  {     rem=temp%10;     reverse=reverse*10+rem;     temp/=10;  }  /* Checking if number entered by user and it's reverse number is equal. */    if(reverse==n)        printf("%d is a palindrome.",n);  else      printf("%d is not a palindrome.",n);  return 0;}

Result Output:

Enter an integer: 1232112321 is a palindrome.

3. Prime Check

Note: 1 is neither a prime nor a composite number.

Source Code:

/* C program to check whether a number is prime or not. */ #include <stdio.h>int main(){  int n, i, flag=0;  printf("Enter a positive integer: ");  scanf("%d",&n);  for(i=2;i<=n/2;++i)  {      if(n%i==0)      {          flag=1;          break;      }  }  if (flag==0)      printf("%d is a prime number.",n);  else      printf("%d is not a prime number.",n);  return 0;}

Result Output:

Enter a positive integer: 2929 is a prime number.

4. Print Pyramid and Triangle

Using * to create a triangle

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

Source Code:

#include <stdio.h>int main(){    int i,j,rows;    printf("Enter the number of rows: ");    scanf("%d",&rows);//Search WeChat public account [C Language Chinese Community] for free 200G learning materials    for(i=1;i<=rows;++i)    {        for(j=1;j<=i;++j)        {           printf("* ");        }        printf("\n");    }    return 0;}

Print half pyramid using numbers as shown below.

11 21 2 31 2 3 41 2 3 4 5

Source Code:

#include <stdio.h>int main(){    int i,j,rows;    printf("Enter the number of rows: ");    scanf("%d",&rows);    for(i=1;i<=rows;++i)    {        for(j=1;j<=i;++j)        {           printf("%d ",j);        }        printf("\n");    }    return 0;}

Using * to print half pyramid

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

Source Code:

#include <stdio.h>int main(){    int i,j,rows;    printf("Enter the number of rows: ");    scanf("%d",&rows);    for(i=rows;i>=1;--i)    {        for(j=1;j<=i;++j)        {           printf("* ");        }    printf("\n");    }    return 0;}

Using * to print pyramid

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

Source Code:

#include <stdio.h>int main(){    int i,space,rows,k=0;    printf("Enter the number of rows: ");    scanf("%d",&rows);    for(i=1;i<=rows;++i)    {        for(space=1;space<=rows-i;++space)        {           printf("  ");        }        while(k!=2*i-1)        {           printf("* ");           ++k;        }        k=0;        printf("\n");    }    return 0;}

Using * to print inverted pyramid

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

Source Code:

#include&lt;stdio.h&gt;int main(){    int rows,i,j,space;    printf("Enter number of rows: ");    scanf("%d",&rows);    for(i=rows;i>=1;--i)    {        for(space=0;space<rows-i;++space)           printf("  ");        for(j=i;j<=2*i-1;++j)          printf("* ");        for(j=0;j<i-1;++j)            printf("* ");        printf("\n");    }    return 0;}

5. Simple Calculator for Addition, Subtraction, Multiplication, and Division

Source Code:

/* Source code to create a simple calculator for addition, subtraction, multiplication and division using switch...case statement in C programming. */ # include <stdio.h>int main(){    char o;    float num1,num2;    printf("Enter operator either + or - or * or divide : ");    scanf("%c",&o);    printf("Enter two operands: ");    scanf("%f%f",&num1,&num2);    switch(o) {        case '+':            printf("%.1f + %.1f = %.1f",num1, num2, num1+num2);            break;        case '-':            printf("%.1f - %.1f = %.1f",num1, num2, num1-num2);            break;        case '*':            printf("%.1f * %.1f = %.1f",num1, num2, num1*num2);            break;        case '/':            printf("%.1f / %.1f = %.1f",num1, num2, num1/num2);            break;        default:            /* If operator is other than +, -, * or /, error message is shown */            printf("Error! operator is not correct");            break;    }    return 0;}

Result Output:

Enter operator either + or - or * or divide : -Enter two operands: 3.48.43.4 - 8.4 = -5.0

6. Check if a number can be expressed as the sum of two prime numbers

Source Code:

#include &lt;stdio.h&gt;int prime(int n);int main(){    int n, i, flag=0;//Search WeChat public account [C Language Chinese Community] for free 200G learning materials    printf("Enter a positive integer: ");    scanf("%d",&n);    for(i=2; i<=n/2; ++i)    {        if (prime(i)!=0)        {            if ( prime(n-i)!=0)            {                printf("%d = %d + %d\n", n, i, n-i);                flag=1;            }         }    }    if (flag==0)      printf("%d can't be expressed as sum of two prime numbers.",n);    return 0;}int prime(int n)      /* Function to check prime number */{    int i, flag=1;    for(i=2; i<=n/2; ++i)       if(n%i==0)          flag=0;    return flag;}

Result Output:

Enter a positive integer: 3434 = 3 + 3134 = 5 + 2934 = 11 + 2334 = 17 + 17

7. Reverse a String Using Recursion

Source Code:

/* Example to reverse a sentence entered by user without using strings. */ #include &lt;stdio.h&gt;void Reverse();int main(){    printf("Enter a sentence: ");    Reverse();    return 0;}void Reverse(){    char c;    scanf("%c",&c);    if( c != '\n')    {        Reverse();        printf("%c",c);    }}

Result Output:

Enter a sentence: margorp emosewaawesome program

8. Implement Binary and Decimal Conversion

/* C programming source code to convert either binary to decimal or decimal to binary according to data entered by user. */ #include &lt;stdio.h&gt;#include &lt;math.h&gt;int binary_decimal(int n);int decimal_binary(int n);int main(){   int n;   char c;   printf("Instructions:\n");   printf("1. Enter alphabet 'd' to convert binary to decimal.\n");   printf("2. Enter alphabet 'b' to convert decimal to binary.\n");   scanf("%c",&c);   if (c =='d' || c == 'D')   {       printf("Enter a binary number: ");       scanf("%d", &n);       printf("%d in binary = %d in decimal", n, binary_decimal(n));   }   if (c =='b' || c == 'B')   {       printf("Enter a decimal number: ");       scanf("%d", &n);       printf("%d in decimal = %d in binary", n, decimal_binary(n));   }   return 0;} int decimal_binary(int n)  /* Function to convert decimal to binary.*/{    int rem, i=1, binary=0;    while (n!=0)    {        rem=n%2;        n/=2;        binary+=rem*i;        i*=10;    }    return binary;} int binary_decimal(int n) /* Function to convert binary to decimal.*/{    int decimal=0, i=0, rem;    while (n!=0)    {        rem = n%10;        n/=10;        decimal += rem*pow(2,i);        ++i;    }    return decimal;}

9. Use Multi-Dimensional Arrays to Implement Matrix Addition

Source Code:

#include &lt;stdio.h&gt;int main(){    int r,c,a[100][100],b[100][100],sum[100][100],i,j;    printf("Enter number of rows (between 1 and 100): ");    scanf("%d",&r);    printf("Enter number of columns (between 1 and 100): ");    scanf("%d",&c);    printf("\nEnter elements of 1st matrix:\n"); /* Storing elements of first matrix entered by user. */     for(i=0;i<r;++i)       for(j=0;j<c;++j)       {           printf("Enter element a%d%d: ",i+1,j+1);           scanf("%d",&a[i][j]);       } /* Storing elements of second matrix entered by user. */     printf("Enter elements of 2nd matrix:\n");    for(i=0;i<r;++i)       for(j=0;j<c;++j)       {           printf("Enter element a%d%d: ",i+1,j+1);           scanf("%d",&b[i][j]);       } /*Adding Two matrices */    for(i=0;i<r;++i)       for(j=0;j<c;++j)           sum[i][j]=a[i][j]+b[i][j]; /* Displaying the resultant sum matrix. */     printf("\nSum of two matrix is: \n\n");    for(i=0;i<r;++i)       for(j=0;j<c;++j)       {           printf("%d   ",sum[i][j]);           if(j==c-1)               printf("\n\n");       }     return 0;}

10. Matrix Transposition

Source Code:

#include &lt;stdio.h&gt;int main(){    int a[10][10], trans[10][10], r, c, i, j;    printf("Enter rows and column of matrix: ");    scanf("%d %d", &r, &c); /* Storing element of matrix entered by user in array a[][]. */    printf("\nEnter elements of matrix:\n");    for(i=0; i<r; ++i)    for(j=0; j<c; ++j)    {        printf("Enter elements a%d%d: ",i+1,j+1);        scanf("%d",&a[i][j]);    }/* Displaying the matrix a[][] */    printf("\nEntered Matrix: \n");    for(i=0; i<r; ++i)    for(j=0; j<c; ++j)    {        printf("%d  ",a[i][j]);        if(j==c-1)            printf("\n\n");    } /* Finding transpose of matrix a[][] and storing it in array trans[][]. */    for(i=0; i<r; ++i)    for(j=0; j<c; ++j)    {       trans[j][i]=a[i][j];    } /* Displaying the transpose,i.e, Displaying array trans[][]. */    printf("\nTranspose of Matrix:\n");    for(i=0; i<c; ++i)    for(j=0; j<r; ++j)    {        printf("%d  ",trans[i][j]);        if(j==r-1)            printf("\n\n");    }    return 0;}

Source:Embedded ARMEditor:As Seen InitiallyReviewer: Liu Ming

10 Basic C Language Algorithms You Often Encounter

10 Basic C Language Algorithms You Often Encounter

Let a set of autumn blockbuster films amaze your circle of friends!

10 Basic C Language Algorithms You Often Encounter

Digital Economy: Injecting New Momentum into the Innovation and Development of Free Trade Pilot Zones

10 Basic C Language Algorithms You Often Encounter

Gathering strength, offering suggestions, the Software New City organized a special discussion meeting on the “14th Five-Year Plan” for the software and information service industry in the high-tech zone.

10 Basic C Language Algorithms You Often Encounter

4th Global Programmer’s Day – Experts Discuss | Guan Zhen: Building a Digital Twin World

Leave a Comment