Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

DSA Lab Record -2

Name: Vanshvardhan Punia


Roll number: 20051048
LAB ASSIGNMENT:

I/P:#include<stdio.h>
#include<stdlib.h>a 
int main()
{
    int max,min,count=0,n,i;
    printf("Enter number of elements in the array: ");
    scanf("%d",&n);
    int *arr;
    arr=(int*)malloc(n*(sizeof(int)));
    printf("Enter the numbers: ");
    for(i=0;i<n;i++)
    {
        scanf("%d",arr+i);
    }
    printf("Max number: ");
    scanf("%d",&max);
    printf("Min number: ");
    scanf("%d",&min);
    printf("NUmbers between %d and %d\n",min,max);
    for(i=0;i<n;i++)
    {
        if(*(arr+i)<=max && *(arr+i)>=min)
        {
            count=count+1;
            printf("%d ",*(arr+i));
        }
    }
    printf("\nNumber of elements are: %d",count);
    return 0;
}

O/P:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n,count=0,i,j;
    int neg=-1;
    printf("Enter the number of elements: ");
    scanf("%d",&n);
    int *arr;
    arr=(int*)malloc(n*sizeof(int));
    printf("Enter the numbers: ");
    for(i=0;i<n;i++)
    {
        scanf("%d",arr+i);
    }
    for(i=0;i<n;i++)
    {
        printf("Next greatest element of %d is ",*(arr+i));
        neg=-1;
        for(j=(i+1);j<n;j++)
        {
        if(*(arr+j)>*(arr+i))
        {
            neg=*(arr+j);
            break;
        }
        }
        printf("%d\n",neg);
    }
    return 0;
}

O/P:
HOME ASSIGNMENT:

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void distance(int *arr,int n,int s_e,int l_e)
{
    int s,l;
    for(int i=0;i<n;i++){
        if(arr[i]==s_e){
            s=i;
            break;

        }
    }
    for(int i=0;i<n;i++){
        if(arr[i]==l_e){
            l=i;
            break;

        }
    }
    int k=(l-s);
    printf("%d",k);
}
int main ()
{
    int n;
    scanf("%d",&n);
    int *arr=(int *)malloc(n*sizeof(int));
    for(int i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    int small_element,large_element;
    scanf("%d",&small_element);
    scanf("%d",&large_element);
    distance(arr,n,small_element,large_element);
    return 0;
}

O/P:
I/P:
#include <stdio.h>
void main ()
    {
        int number[30];
        int i, j, a, n, counter, average;
 
        printf("Enter the value of N:\n");
        scanf("%d", &n);
 
        printf("Enter the numbers: \n");
        for (i = 0; i < n; ++i)
            scanf("%d", &number[i]);
 
        for (i = 0; i < n; ++i){
            for (j = i + 1; j < n; ++j){
                if (number[i] < number[j]){
                    a = number[i];
                    number[i] = number[j];
                    number[j] = a;
                }
            }
        }
 
        printf("The numbers arranged in descending order are given below \n");
 
        for (i = 0; i < n; ++i)
        {
            printf("%d ", number[i]);
        }
 
        printf("\nThe 2nd largest number is  = %d\n", number[1]);
        printf("\nThe 2nd smallest number is = %d\n", number[n - 2]);        
}

O/P:
I/P:

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

int main(){
    int N;
    printf("enter size of array: ");
    scanf("%d",&N);
    int *A = (int*)malloc(N*sizeof(int));
    for(int i=0; i<N; i++)
        scanf("%d",&A[i]);
    int *ans = (int*)malloc(N*sizeof(int));
    int le=0, lo=N-1;
    for(int i=0;i<N;i++){
        if(A[i]%2 == 0){
            ans[le++] = A[i];
        }
        if(A[i]%2 != 0){
            ans[lo--] = A[i]; 
        }
    }
    for(int i = 0; i<N; i++){
        printf("%d ",ans[i]);
    }
    printf("\n");
    return 0;
}

O/P:
I/P:

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

int main(){
    int N;
    int *A,*B,*ans,b_ptr=0;
    printf("enter number of elements:");
    scanf("%d",&N);
    A = (int*)malloc(N*sizeof(int));
    B = (int*)malloc(N*sizeof(int));
    for(int i=0;i<N;i++){
        scanf("%d",&A[i]);
    }
    int j;
    for(int i=0;i<N;i++){
        for(j=b_ptr;j>=0;j--){
            if(A[B[j]] > A[i]){
                break;
            }else{
                A[B[j]] = A[i];
            }
        }
        j++;
        b_ptr = j;
        B[b_ptr] = i;
    }
    for(int  i = 0; i<=b_ptr; i++)
        A[B[i]] = -1;
    for(int i=0;i<N;i++)
        printf("%d ",A[i]);

    printf("\n");
    return 0;
}

O/P:
I/P:
#include<stdio.h>
#include<limits.h>
#include<stdlib.h>

int main()
{
    int N;
    printf("enter size of array: ");
    scanf("%d",&N);
    int * A = (int *)malloc((N+2)*sizeof(int));
    A[0] = 1;
    A[N+1] = 1;
    for(int i=1;i<=N;i++)
        scanf("%d",&A[i]);
    int p=A[0];
    for(int i=1;i<=N;i++)
    {
        int t = A[i];
        A[i] = p * A[i+1];
        p = t;
    }
    for(int i =1;i<=N;i++)
    {
       printf("%d ",A[i]);
    }
    return 0;
}

O/P:

I/P:

#include <stdio.h>
 
void main()
{
    static int array1[10][10], array2[10][10];
    int i, j, k, a, m, n;
 
    printf("Enter the order of the matrix \n");
    scanf("%d %d", &m, &n);
    printf("Enter co-efficients of the matrix \n");
    for (i = 0; i < m; ++i)
    {
        for (j = 0; j < n; ++j)
        {
            scanf("%d", &array1[i][j]);
            array2[i][j] = array1[i][j];
        }
    }
    printf("The given matrix is \n");
    for (i = 0; i < m; ++i)
    {
        for (j = 0; j < n; ++j)
        {
                printf(" %d", array1[i][j]);
        }
        printf("\n");
    }
    printf("After arranging rows in ascending order\n");
    for (i = 0; i < m; ++i)
    {
        for (j = 0; j < n; ++j)
        {
            for (k =(j + 1); k < n; ++k)
            {
                if (array1[i][j] > array1[i][k])
                {
                    a = array1[i][j];
                    array1[i][j] = array1[i][k];
                    array1[i][k] = a;
                }
            }
        }
    }
    for (i = 0; i < m; ++i)
    {
        for (j = 0; j < n; ++j)
        {
            printf(" %d", array1[i][j]);
        }
        printf("\n");
    }
    printf("After arranging the columns in descending order \n");
    for (j = 0; j < n; ++j)
    {
        for (i = 0; i < m; ++i)
        {
            for (k = i + 1; k < m; ++k)
            {
                if (array2[i][j] < array2[k][j])
                {
                    a = array2[i][j];
                    array2[i][j] = array2[k][j];
                    array2[k][j] = a;
                }
            }
        }
    }
    for (i = 0; i < m; ++i)
    {
        for (j = 0; j < n; ++j)
        {
            printf(" %d", array2[i][j]);
        }
        printf("\n");
    }
}

O/P:

I/P:

#include<stdio.h>
#include<stdlib.h>
void go()
{
    printf("Enter the size of array : ");
    int n;
    scanf("%d",&n);
    int *arr;
    arr=(int *)malloc(n*sizeof(int));
    for(int i=0;i<n;i++){
        scanf("%d",&arr[i]);
    }
    for(int i=0;i<n;i++){
        for(int j=i+1;j<n;j++){
            if((arr+j)<(arr+i)){
                int temp=*(arr+j);
                *(arr+j)=*(arr+i);
                *(arr+i)=temp;
            }
        }
    }
    for(int i=0;i<n;i++){
        printf("%d ",arr[i]);
    }
    printf("\n");
    int s,l;
    
    scanf("%d %d",&s,&l);
    for(int i=0;i<n;i++){
        if(s==i){
            printf("small = %d",arr[i]);
        }
    }
    for(int j=n;j>=0;j--){
        if(j==l){
            printf("\nlarge = %d",arr[j]);
        }
    } 
}
int main ()
{
    printf("Enter the test case we need to pass : ");
    int t;
    scanf("%d",&t);
    while(t--){
        go();
    }
}

O/P:

I/P:

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

int main(){
    int N;
    printf(" ENTER SIZE OF ARRAY :");
    scanf("%d",&N);
    int * A = (int *)malloc(N*sizeof(int));
    for(int i=0;i<N;i++)
        scanf("%d",&A[i]);
    int L=A[0], cts=1;
    for(int i=0;i<N;i++){
        if(A[i] == L)
            cts++;
        if(A[i] > L){
            L = A[i];
            cts = 1;
        }
    }
    printf("LARGEST ELEMENT: %d \nOCCURENCES: %d\n",L,cts);
    return 0;
}

O/P:

I/P:

#include<stdio.h>
#include<limits.h>
#include<stdlib.h>
int main(){
    int N;
    printf(" ENTER SIZE OF ARRAY :");
    scanf("%d",&N);
    int * A = (int *)malloc(N*sizeof(int));
    for(int i=0;i<N;i++)
        scanf("%d",&A[i]);
    int * ans = (int *)malloc(N*sizeof(int));
    int le = 0, lo=N-1;
    for(int i=0;i<N;i++){
        if(A[i] == 0)
            ans[le++] = A[i];
        if(A[i] == 1)
            ans[lo--] = A[i];
    }
    for(int i=0;i<N;i++)
        printf("%d ",ans[i]);
    printf("\n");
    return 0 ;
}

O/P:
I/P:

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

int main(){
    int M,N;
    printf(" ENTER SIZE OF ARRAY m&n :");
    scanf("%d%d",&M,&N);
    int **A = (int **)malloc(M*sizeof(int));
    for(int i=0; i<N;i++){
        A[i] = (int *)malloc(N*sizeof(int));
    }
    for(int i=0; i<M;i++){
        for(int j=0; j<N;j++){
            scanf("%d",&A[i][j]);
        }
    }
    for(int i=0;i<M/2;i++){
        int r1 = i,r2=M-i-1;
        for(int j=0;j<N;j++){
            int t = A[r1][j];
            A[r1][j] = A[r2][j];
            A[r2][j] = t;        
        }
    }
    for(int i=0;i<M;i++){
        for(int j=0;j<N;j++){
            printf("%d ",A[i][j]);
        }
        printf("\n");
    }
    return 0 ;
}

O/P;
I/P:

#include <stdio.h>
void main()
 {
    int arr1[10], arr2[10], arr3[10];
    int i,j=0,k=0,n;
    printf("enter number of elements:");
    scanf("%d",&n);
       for(i=0;i<n;i++){
         scanf("%d",&arr1[i]);
       }
    for(i=0;i<n;i++){
   if (arr1[i]%2 == 0){
      arr2[j] = arr1[i];
      j++;
   }
   else{
      arr3[k] = arr1[i];
      k++;
   }
    }
    printf("\nThe Even elements are : \n");
    for(i=0;i<j;i++){
   printf("%d ",arr2[i]);
    }
    printf("\nThe Odd elements are :\n");
    for(i=0;i<k;i++){
   printf("%d ", arr3[i]);
    } 
 }

O/P:

You might also like