Showing posts with label Array programs in C. Show all posts
Showing posts with label Array programs in C. Show all posts

Thursday, 19 December 2019

Minimum number in an array

#include<stdio.h>
#include<conio.h>
int main()
{
int n,*a,i,min;
printf("Enter the limit: ");
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
printf("Enter the element %d:",(i+1));
scanf("%d",&a[i]);
}
min=a[0];
for(i=0;i<n;i++)
{
if(a[i]<min)
min=a[i];
}
printf("\nThe minimum number in the array %d\n",min);
getch();
return 0;
}

Maximum Number in an array

#include<stdio.h>
#include<conio.h>
int main()
{
int n,*a,i,max;
printf("Enter the limit: ");
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
for(i=0;i<5;i++)
{
printf("Enter the element %d:",(i+1));
scanf("%d",&a[i]);
}
max=a[0];
for(i=0;i<n;i++)
{
if(a[i]>max)
max=a[i];
}
printf("\nThe maximum number in the array %d\n",max);
getch();
return 0;
}

Wednesday, 18 December 2019

C program for Quick Sort

#include <stdio.h>
#include <stdlib.h>

void sort(int ar[],int left,int right)
{   
    int pivot;
    if(left<right)
    {
        pivot=partition(ar,left,right);
        sort(ar,left,pivot-1);
        sort(ar,pivot+1,right);
    }
}

int partition(int ar[],int i,int j)
{
    int pivot=ar[i];
    int index=i;
    while(i<j)
    {
        while(pivot<ar[j])
        {
            j--;
        }
        while(pivot>=ar[i])
        {
            i++;
        }
        if(i<j)
        {
            int tmp=ar[i];
            ar[i]=ar[j];
            ar[j]=tmp;
        }
    }
    int tmp=ar[j];
    ar[j]=ar[index];
    ar[index]=tmp;
    return j;
}

int main(void)
{
    int ar[]={546,-1,-2,12,10,80,30,90,1,89,-4,50,70};
    int left=0;
    int right=(int)(sizeof(ar)/sizeof(int)) -1;

    sort(ar,left,right);

    printf("\nSorted array\n");
    int i=0;
    for (;i<=right;i++)
    {
        printf("%d ",ar[i]);
    }
}

C program for Selection Sort

#include <stdio.h>

int sort(int ar[],int n)
{
    int i=0;
    int j=0;
    int temp;
    int min;
    int pos;

    for(;i<n;i++)
    {
        min=ar[i];
        pos=i;
        for(j=i;j<n;j++)
        {
            if(ar[j]<min)
            {
                pos=j;
                min=ar[j];
            }
        }
        if(pos==i)
        {
            continue;
        }
        else 
        {
            temp=ar[i];
            ar[i]=min;
            ar[pos]=temp;
        }
    }
}

int main(void)
{
    int n;
    
    printf("\nEnter the size of array :-  ");
    scanf("%d",&n);

    int ar[n];  //Declaring array
    int i=0;

    for (;i<n;i++)
    {
        printf("\nEnter the array element :-  ");
        scanf("%d",&ar[i]);
    }

    sort(ar,n);

    printf("\nPrinting sorted array\n");
    
    for (i=0;i<n;i++)
    {
        printf("%d ",ar[i]);
    }    
}

Binary Search for Unsorted Array in C

Binary Search for Unsorted Array

#include <stdio.h>
#include <stdlib.h>
  void sort(int *data, int n) {
        int i, j, temp;
        for (i = 1; i < n; i++) {
                temp = data[i];
                for (j = i; j > 0 && data[j-1] > temp; j--) {
                        data[j] = data[j-1];
                }
                data[j] = temp;
        }
  }

  int main() {
        int i, high, low, mid, n, *data, element, ch = 1;
        printf("Binary Search Example:\n");
        printf("Enter the number of entries:");
        scanf("%d", &n);
        data = (int *)malloc(sizeof (int) * n);
        for (i = 0; i < n; i++) {
                scanf("%d", &data[i]);
        }
        sort(data, n);
        printf("After sorting:");
        for (i = 0; i < n; i++)
                printf("%3d ", data[i]);
        printf("\n");
        while (ch) {
                printf("Enter the data to be searched:");
                scanf("%d", &element);
                low = 0, high = n-1;
                while (low <= high) {
                        mid = (high + low) / 2;
                        if (data[mid] < element)
                                low = mid + 1;
                        else if (data[mid] > element)
                                high = mid - 1;
                        else {
                                printf("Search element %d found "
                                        "at index %d\n", element, mid);
                                break;
                        }
                }
                printf("Searched element is not available\n");
                printf("Do you wanna continue search(1/0):");
                scanf("%d", &ch);
        }
        return 0;
  }


Sample Output:

Binary Search Example:
Enter the number of entries:5
5
34
4
22
1
After sorting: 1  4  5  22  34
Enter the data to be searched:5
Search element 5 found at index 2
Do you wanna continue search(1/0):0

Tuesday, 17 December 2019

Strassen's Matrix Multiplication 2*2

Strassen's Matrix Multiplication 2*2

#include<stdio.h>
int main(){
  int a[2][2], b[2][2], c[2][2], i, j;
  int m1, m2, m3, m4 , m5, m6, m7;

  printf("Enter the 4 elements of first matrix: ");
  for(i = 0;i < 2; i++)
      for(j = 0;j < 2; j++)
           scanf("%d", &a[i][j]);

  printf("Enter the 4 elements of second matrix: ");
  for(i = 0; i < 2; i++)
      for(j = 0;j < 2; j++)
           scanf("%d", &b[i][j]);

  printf("\nThe first matrix is\n");
  for(i = 0; i < 2; i++){
      printf("\n");
      for(j = 0; j < 2; j++)
           printf("%d\t", a[i][j]);
  }

  printf("\nThe second matrix is\n");
  for(i = 0;i < 2; i++){
      printf("\n");
      for(j = 0;j < 2; j++)
           printf("%d\t", b[i][j]);
  }

  m1= (a[0][0] + a[1][1]) * (b[0][0] + b[1][1]);
  m2= (a[1][0] + a[1][1]) * b[0][0];
  m3= a[0][0] * (b[0][1] - b[1][1]);
  m4= a[1][1] * (b[1][0] - b[0][0]);
  m5= (a[0][0] + a[0][1]) * b[1][1];
  m6= (a[1][0] - a[0][0]) * (b[0][0]+b[0][1]);
  m7= (a[0][1] - a[1][1]) * (b[1][0]+b[1][1]);

  c[0][0] = m1 + m4- m5 + m7;
  c[0][1] = m3 + m5;
  c[1][0] = m2 + m4;
  c[1][1] = m1 - m2 + m3 + m6;

   printf("\nAfter multiplication using Strassen's algorithm \n");
   for(i = 0; i < 2 ; i++){
      printf("\n");
      for(j = 0;j < 2; j++)
           printf("%d\t", c[i][j]);
   }

   return 0;
}


Output -

Enter the 4 elements of first matrix:
1 2
3 4
Enter the 4 elements of second matrix:
5 6
7 8
The first matrix is

1 2
3 4
The second matrix is

5 6
7 8
After multiplication using Strassen's algorithm

19 22
43 50

Inserting an element at a specific position

#include<stdio.h>
#include<conio.h>
#include<malloc.h>
main()
{
int i,n,num,pos,*arr;
printf("\n Enter number of elements ");
scanf("%d",&n);
arr=(int*)malloc(n*2);
for(i=0;i<n;i++)
{
printf("\n Enter element ",i);
scanf("%d",(arr+i));
}
printf("\n Enter number to be inserted... ");
scanf("%d",&num);
printf("\n Enter the position of the element to be inserted ");
scanf("%d",&pos);
for(i=n-1;i>=pos;i--)
*(arr+(i+1))=*(arr+i);
*(arr+pos)=num;
n++;
printf("\n Array after insertion....");
for(i=0;i<n;i++)
printf("\t %d ",*(arr+i));
getch();
}




Checking a duplicate number in an array

#include<stdio.h>
#include<conio.h>
#include<malloc.h>
main()
{
int n,*arr,j,i,f=0;
printf("\n Enter the size of the array ");
scanf("%d",&n);
arr=(int*)malloc(n*2);
for(i=0;i<n;i++)
{
printf("\n Enter the element: %d ",i);
scanf("%d",(arr+i));
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(*(arr+i)==*(arr+j) && i!=j)
{
f=1;
printf("\n Duplicate number found at position %d and %d. ",i,j);
}
}
}
if(f==0)
printf("\n No duplicate number found..... ");
getch();
}