TASK 1
Q1)
#include <stdio.h>
#include<stdlib.h>
int reverse(int a[],int r)
int i,t;
for(i=0;i<r/2;i++)
t=a[i];
a[i]=a[r-1-i];
a[r-1-i]=t;
int sum(int a[],int s)
int i,sum=0;
for(i=0;i<s;i++)
sum=sum+a[i];
return sum;
int insert(int arr[], int n, int pos, int val)
for (int i = n; i > pos; i--)
arr[i] = arr[i-1];
arr[pos] = val;
n++;
}
int deletion(int arr[], int n, int val)
int i;
while (arr[i] != val) i++;
for (int j = i; j < n - 1; j++)
arr[i] = arr[i + 1];
n--;
int exiting(int i)
exit(0);
int main()
int a[10],n,c,i;
Retry :
printf("\n How many Array elements should be there : ");
scanf("%d",&n);
printf("\n enter %d Array Elements : ",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\n The Array You Entered is : ");
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
printf("\n The list Operation is as follows ");
printf("\n 1 for reverse of array");
printf("\n 2 for sum of array elements ");
printf("\n 3 for inserting a array element ");
printf("\n 4 for deleting an array element ");
printf("\n 5 for exit ");
printf("\n Enter The operation : ");
scanf("%d",&c);
switch(c)
case 1:
printf("\n Reverse of the array is : ");
reverse(a,n);
for(i=0;i<n;i++)
printf("%d ",a[i]);
break;
case 2:
printf("\n Sum of the Array elements is : %d",sum(a,n));
break;
case 3:
int pos,val;
printf("\n Enter The Position You Want to Insert the Element at : ");
scanf("%d",&pos);
printf("\n Enter The Element : ");
scanf("%d",&val);
insert(a, n, pos, val);
for (int i = 0; i < n+1; i++)
printf("%d ", a[i]);
break;
case 4:
int val;
printf("\n Enter The Value in Array you want to delete : ");
scanf("%d",&val);
deletion(a,n,val);
for (int i = 0; i < n-1; i++)
printf("%d ", a[i]);
break;
case 5:
int i,j;
printf("\n Do you want to exit the program \n Enter 1 for yes \n Enter 0 for no \n Enter Your
choice : ");
scanf("%d",&i);
if(i==0)
printf("\n Do you want to restart \n Enter 1 for yes \n Enter 0 for no \n Enter Your choice :
");
scanf("%d",&j);
if(j==1)
goto Retry;
else if(j==0)
exiting(i);
else
printf("\n Invalid Choice ");
else if(i==1)
exiting(i);
else
printf("\n Invalid choice ");
default:
printf("\n Invalid input ");
Q2)
#include<stdio.h>
#include<stdlib.h>
int matrix(int a[3][3])
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("\n Enter The Matrix element : ");
scanf("%d",&a[i][j]);
int add(int a[3][3],int m,int n)
int b[3][3],s[3][3];
int i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf("\n Enter The Matrix element for 1st matrix : ");
scanf("%d",&a[i][j]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf("\n Enter The Matrix element for 2nd matrix : ");
scanf("%d",&b[i][j]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
s[i][j]=a[i][j]+b[i][j];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf("%d ",s[i][j]);
printf("\n");
int transporse(int a[3][3],int m,int n)
int i,j;
printf("\n After Transporse : \n ");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf("%d ",a[j][i]);
printf("\n");
}
}
int diagonal(int a[3][3],int m,int n)
int i,j,sum=0;
if(m==n)
for(i=0;i<m;i++)
sum=sum+a[i][m-i-1];
printf("\n Sum of Right Diagonal of a matrix is : %d",sum);
else
printf("\n The Matrix is not a square matrix ");
int lower(int a[3][3],int m,int n)
int i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(i<j)
printf(" ");
else
printf("%d ",a[i][j]);
}
printf("\n");
int exiting(int i)
exit(0);
int main()
int i,j,a[3][3],c;
restart:
printf("\n The List of Operation to perform on matrix is as follows : ");
printf("\n 1) Printing the matrix ");
printf("\n 2) Adding two matrices ");
printf("\n 3) To find transporse of matrix ");
printf("\n 4) To find the sum of right diagonal of matrix ");
printf("\n 5) To display the lower triangle of matrix ");
printf("\n 6) To Exit the program ");
printf("\n Enter the Operation you want to perform : ");
scanf("%d",&c);
switch(c)
case 1 :
matrix(a);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
printf("\n");
break;
case 2:
int m,n;
printf("\n Enter The No of Rows And Columns in a Matrix : ");
scanf("%d %d",&m,&n);
add(a,m,n);
break;
case 3:
int m,n;
printf("\n Enter The No of Rows And Columns in a Matrix : ");
scanf("%d %d",&m,&n);
int i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf("\n Enter The Matrix element for matrix : ");
scanf("%d",&a[i][j]);
printf("\n Before Transporse :\n ");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
transporse(a,m,n);
break;
case 4:
int m,n;
printf("\n Enter The No of Rows And Columns in a Matrix : ");
scanf("%d %d",&m,&n);
int i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf("\n Enter The Matrix element for matrix : ");
scanf("%d",&a[i][j]);
printf("\n Entered Matrix is : \n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
diagonal(a,m,n);
break;
case 5:
int m,n;
printf("\n Enter The No of Rows And Columns in a Matrix : ");
scanf("%d %d",&m,&n);
int i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf("\n Enter The Matrix element for matrix : ");
scanf("%d",&a[i][j]);
printf("\n Entered Matrix is : \n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
printf("\n Displaying Only Lower half Of Matrix : \n ");
lower(a,m,n);
break;
}
case 6:
int i,j;
printf("\n Do you want to exit the program \n Enter 1 for yes \n Enter 0 for no \n Enter Your
choice : ");
scanf("%d",&i);
if(i==0)
printf("\n Do you want to restart \n Enter 1 for yes \n Enter 0 for no \n Enter Your choice :
");
scanf("%d",&j);
if(j==1)
goto restart;
else if(j==0)
exiting(i);
else
printf("\n Invalid Choice ");
else if(i==1)
exiting(i);
else
printf("\n Invalid choice ");
}
}
default:
printf("\n Invalid choice ");
Q3)
#include<stdio.h>
int array(int a[3],int n)
int i;
printf("\n Enter %d array elements : ",n);
for(i=0;i<n;i++)
scanf("%d",a+i);
printf("\n The Entered Array is : ");
for(i=0;i<n;i++)
printf("%d ",*(a+i));
int sum(int a[3],int n)
int i,s=0;
printf("\n Enter %d array elements : ",n);
for(i=0;i<n;i++)
scanf("%d",a+i);
}
printf("\n The Entered Array is : ");
for(i=0;i<n;i++)
printf("%d ",*(a+i));
for(i=0;i<n;i++)
s=s+*(a+i);
return s;
int reverse(int a[3],int n)
int i;
printf("\n After reversing : ");
for(i=n-1;i>=0;i--)
printf("%d ",*(a+i));
int large(int a[3],int n)
int i,l;
l=*(a+0);
for(i=1;i<n;i++)
if(l<*(a+i))
l=*(a+i);
}
return l;
int average(int a[3],int n)
int i,s=0,avg;
printf("\n Enter %d array elements : ",n);
for(i=0;i<n;i++)
scanf("%d",a+i);
printf("\n The Entered Array is : ");
for(i=0;i<n;i++)
printf("%d ",*(a+i));
for(i=0;i<n;i++)
s=s+*(a+i);
avg=s/n;
return avg;
int main()
int a[5],c;
printf("\n The List of operations to perform is as follows : ");
printf("\n 1) Printing an array using pointers ");
printf("\n 2) To find the sum of all array elements using pointers ");
printf("\n 3) Printing an array in reverse ");
printf("\n 4) To find the largest element in an array ");
printf("\n 5) To find the average of all array element using pointers ");
printf("\n Enter Your Choice : ");
scanf("%d",&c);
switch(c)
case 1:
int n;
printf("\n Enter The Size of array : ");
scanf("%d",&n);
array(a,n);
break;
case 2:
int n;
printf("\n Enter The Size of array : ");
scanf("%d",&n);
printf("\n Sum of all Array elements is %d",sum(a,n));
break;
case 3:
int n,i;
printf("\n Enter The Size of array : ");
scanf("%d",&n);
printf("\n Enter %d Array Elements : ",n);
for(i=0;i<n;i++)
scanf("%d",(a+i));
printf("\n Before Reversing : ");
for(i=0;i<n;i++)
printf("%d ",*(a+i));
reverse(a,n);
break;
case 4:
int n,i,l;
printf("\n Enter The Size of array : ");
scanf("%d",&n);
printf("\n Enter %d Array Elements : ",n);
for(i=0;i<n;i++)
scanf("%d",(a+i));
printf("\n Entered Array : ");
for(i=0;i<n;i++)
printf("%d ",*(a+i));
l=large(a,n);
printf("\n The Largest Element in an array is %d",l);
break;
case 5:
int n;
printf("\n Enter The Size of array : ");
scanf("%d",&n);
printf("\n Sum of all Array elements is %d",average(a,n));
break;
default:
printf("\n Invalid Input");
}
Q4)
#include<stdio.h>
#include<stdlib.h>
int sort(int a[],int n)
int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<(n-i-1);j++)
if(a[j]>a[j+1])
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
int linearsearch(int a[],int n,int key)
int j=0;
for(int i=0;i<n;i++)
if(a[i]==key)
printf("\n Element found at %d",i);
exit(0);
}
int binarysearch(int a[],int l,int m,int u,int key)
if(a[m]==key)
printf("\n Element Found At Index %d",m);
if(a[m]>key)
u=m-1;
m=(u+l)/2;
binarysearch(a,l,m,u,key);
if(a[m]<key)
l=m+1;
m=(u+l)/2;
binarysearch(a,l,m,u,key);
int min(int x, int y)
return (x <= y) ? x : y;
int fibonaccisearch(int a[], int n, int key)
int fibMMm2 = 0;
int fibMMm1 = 1;
int fibM = fibMMm2 + fibMMm1;
while (fibM < n) {
fibMMm2 = fibMMm1;
fibMMm1 = fibM;
fibM = fibMMm2 + fibMMm1;
int offset = -1;
while (fibM > 1)
int i = min(offset + fibMMm2, n - 1);
if (a[i] < key)
fibM = fibMMm1;
fibMMm1 = fibMMm2;
fibMMm2 = fibM - fibMMm1;
offset = i;
else if (a[i] > key)
fibM = fibMMm2;
fibMMm1 = fibMMm1 - fibMMm2;
fibMMm2 = fibM - fibMMm1;
else
return i;
if (fibMMm1 && a[offset + 1] == key)
return offset + 1;
return -1;
int main()
int a[5],key,n,c;
retry:
printf("\n The List Of Operation is as follows : \n 1) Linear search \n 2) Binary search \n 3)
Fibonnaci search \n 4) Exit ");
printf("\n Enter The Operation You Want To perform : ");
scanf("%d",&c);
switch(c)
case 1:
printf("\n Enter The Size Of Array : ");
scanf("%d",&n);
printf("\n Enter %d Array Elements : ",n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\n Enter The Element you want to search : ");
scanf("%d",&key);
printf("\n Before Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
sort(a,n);
printf("\n After Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
linearsearch(a,n,key);
break;
}
case 2:
printf("\n Enter The Size Of Array : ");
scanf("%d",&n);
printf("\n Enter %d Array Elements : ",n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
int key;
printf("\n Enter The Element you want to search : ");
scanf("%d",&key);
printf("\n Before Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
sort(a,n);
printf("\n After Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
int l=0;
int u=n-1;
int m=(u+l)/2;
binarysearch(a,l,m,u,key);
break;
case 3:
{
printf("\n Enter The Size Of Array : ");
scanf("%d",&n);
printf("\n Enter %d Array Elements : ",n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
int key;
printf("\n Enter The Element you want to search : ");
scanf("%d",&key);
printf("\n Before Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
sort(a,n);
printf("\n After Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
int r=fibonaccisearch(a,n,key);
if(r>=0)
printf("\n Element Found at index %d",r);
else
printf("\n Element Not Found");
}
case 4:
int i,j;
printf("\n Do You Want To Exit The Program ? ");
printf("\n Type '1' for Yes or '0' for No ");
printf("\n Enter Your Choice : ");
scanf("%d",&i);
if(i==1)
exit(0);
else if(i==0)
printf("\n Do You Want To Retry The program ? ");
printf("\n Type '1' for Yes or '0' for No ");
printf("\n Enter Your Choice : ");
scanf("%d",&j);
if(j==1)
goto retry;
else if(j==0)
exit(0);
else
printf("\n Invalid Input ");
exit(0);
}
else
printf("\n Invalid Input ");
exit(0);
break;
default:
printf("\n Invalid Input");
exit(0);
}
Q5)
#include<stdio.h>
#include<stdlib.h>
int bubble(int a[],int n)
int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(a[j]>a[j+1])
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
int insertion(int a[],int n)
int i,j;
for(i=1;i<n;i++)
int k=a[i];
j=i-1;
while(j>=0 && k<=a[j])
a[j+1]=a[j];
j--;
}
a[j+1]=k;
int selection(int a[], int n)
for(int i=0;i<n-1;i++)
int min=i;
for(int j=i+1;j<n;j++)
if(a[j]<a[min])
min=j;
int t=a[i];
a[i]=a[min];
a[min]=t;
int merge(int a[],int l,int m,int r)
int i, j, k;
int n1=m-l+1;
int n2=r-m;
int la[n1], ra[n2];
for(i=0;i<n1;i++)
la[i] = a[l+i];
for(j=0;j<n2;j++)
ra[j] = a[m+1+j];
i=0;
j=0;
k=l;
while(i<n1 && j<n2)
if(la[i] <= ra[j])
a[k] = la[i];
i++;
else
a[k] = ra[j];
j++;
k++;
while(i<n1)
a[k] = la[i];
i++;
k++;
while(j<n2)
a[k] = ra[j];
j++;
k++;
int mergeSort(int a[], int l, int r)
{
if (l<r)
int m=l+(r-l)/2;
mergeSort(a, l, m);
mergeSort(a, m+1,r);
merge(a,l,m,r);
int swap(int *a,int *b)
int t=*a;
*a=*b;
*b=t;
int partition(int a[],int l,int h)
int p=a[h];
int i=l-1;
for(int j=l;j<h;j++)
if(a[j]<=p)
i++;
swap(&a[i],&a[j]);
swap(&a[i+1],&a[h]);
return (i+1);
int quick(int a[],int l,int h)
{
if(l<h)
int pi=partition(a,l,h);
quick(a,l,pi-1);
quick(a,pi+1,h);
int main()
int c,a[100],n;
printf("\n The List Of Operation is As follows : ");
printf("\n 1) Bubble Sort \n 2) Insertion Sort \n 3) Selection Sort \n 4) Merge Sort \n 5) Quick Sort
\n 6) Exit ");
printf("\n Enter Your Choice : ");
scanf("%d",&c);
switch(c)
case 1:
printf("\n Enter The Size Of Array : ");
scanf("%d",&n);
printf("\n Enter %d Array Elements : ",n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\n Array Before Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
}
bubble(a,n);
printf("\n Array After Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
break;
case 2:
printf("\n Enter The Size Of Array : ");
scanf("%d",&n);
printf("\n Enter %d Array Elements : ",n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\n Array Before Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
insertion(a,n);
printf("\n Array After Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
break;
case 3:
{
printf("\n Enter The Size Of Array : ");
scanf("%d",&n);
printf("\n Enter %d Array Elements : ",n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\n Array Before Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
selection(a,n);
printf("\n Array After Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
break;
case 4:
printf("\n Enter The Size Of Array : ");
scanf("%d",&n);
printf("\n Enter %d Array Elements : ",n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\n Array Before Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
mergeSort(a,0,n-1);
printf("\n Array After Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
break;
case 5:
printf("\n Enter The Size Of Array : ");
scanf("%d",&n);
printf("\n Enter %d Array Elements : ",n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\n Array Before Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
quick(a,0,n-1);
printf("\n Array After Sorting : ");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
}
break;
case 6:
exit(0);