Function and Pointer in Array in C

 1. Program to input n element to an array and display them using function and pointer.



 #include<stdio.h>
#include<conio.h>
void input(int *ptr,int n);
void display(int *ptr,int n);
int i;
void main()
{
  int array[100],n;

       printf("Enter the size of array or number of elements\n");
       scanf("%d",&n);
       printf("Enter data elements\n");
       input(array,n);
       printf("The elements in array are\n");
       display(array,n);
       getch();
       }

       void input(int *ptr,int n)
       {
       for(i=0;i<n;i++)
       {
       scanf("%d",(ptr+i));
       }
       }
       void display(int *ptr,int n)
       {
          for(i=0;i<n;i++)

          {
          printf("%d\t",*(ptr+i));
          }

          }

Output:

2.  Program to read n elements in array and display sorting of array using function and pointer.


#include<stdio.h>
#include<conio.h>
void input(int *ptr,int n);
void display(int *ptr, int n);
void sorting(int *ptr,int n);
int i,j;
int main()
{
int a[100],n;
int *ptr=&a[0];
printf("Enter the size of array\n");
scanf("%d",&n);
printf("Enter data elements\n");
input(a,n);
printf("The array elements are\n");
display(a,n);
sorting(a,n);
getch();
}
void input(int *ptr,int n)
      {
      for(i=0;i<n;i++)
      {
      scanf("%d",(ptr+i));
      }
      }

      void display(int*ptr,int n)
      {
      for(i=0;i<n;i++)
      {
 printf("%d\t",*(ptr+i));
 }
 }
  void sorting(int *ptr,int n)
  {
  int temp;
  for(i=0;i<n-2;i++)
 {
 for(j=0;j<=n-2-i;j++)
 {
 if(*(ptr+j)>*((ptr+j)+1))
 {
 temp= *(ptr+j);
 *(ptr+j)=*((ptr+j)+1);
  *((ptr+j)+1)= temp;
  }
  }
  }
  printf("The sorted away is\n");
  for(i=0;i<n;i++)
  {
  printf("%d\t",*(ptr+i));
  }
  }
Output:
















3. Program to input m*n elements and display it using function and pointer.

#include<conio.h>
#include<stdio.h>
void input(int *ptr,int r,int c);
void display(int *ptr,int r,int c);
  int i,j;
void main()
{
int *ptr,r,c,a[10][10];
ptr=&a[0][0];

printf("Enter the row and column size\n");
scanf("%d %d",&r,&c);
printf("Enter the data elements\n");
input(a[0],r,c);
printf("The elements in matrix form is\n");
display(a[0],r,c);
 getch();
 }

void input(int *ptr,int r,int c)
{
   for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
scanf("%d",((ptr+c*i)+j));
}
}
}
void display(int *ptr,int r,int c)
{

   for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{

printf("%d\t",*((ptr+c*i)+j));
}
printf("\n");
}
}
Output:
Program to perform matrix multiplication using function and pointer.

#include <stdio.h>
#include <conio.h>

 void input(int *ptr1,int r1,int c1);
 void display(int *ptr2,int r2,int c2);
 void multi(int *ptr3,int *ptr4,int r1,int c1,int r2,int c2);
 int i,j,n;
 void main()
  {
   int *ptr1,*ptr2,*ptr3;
   int r1,r2,c1,c2,a[10][10],b[10][10],c[10][10];
   ptr1=&a[0][0];
   ptr2=&b[0][0];
   ptr3=&c[0][0];

   printf("Enter size of rows and columns for matrix A\n");
   scanf("%d %d",&r1,&c1);

   printf("Enter size of rows and columns for matrix B\n");
   scanf("%d %d",&r2,&c2);

   printf("Enter elements for matrix A\n");
   input(a[0],r1,c1);

   printf("The elements of matrix A in matrix form is\n");
   display(a[0],r1,c1);

   printf("Enter  elements for matrix B\n");
   input(b[0],r2,c2);

   printf("The elements of matrix B in matrix form is\n");
   display(b[0],r2,c2);

   multi(a[0],b[0],r1,c1,r2,c2);
    getch();
       }

   void input(int *ptr1,int r1,int c1)
    {
     for(i=0;i<r1;i++)
      {
       for(j=0;j<c1;j++)
         {
         scanf("%d",((ptr1+c1*i)+j));
          }
           }
            }

  void display(int *ptr2,int r2,int c2)
   {
    for(i=0;i<r2;i++)
     {
      for(j=0;j<c2;j++)
       {
        printf ("%d\t",*((ptr2+c2*i)+j));
          }
           printf("\n");
             }
               }

 void multi(int *ptr3,int *ptr4,int r1,int c1,int r2,int c2)
  {
   int k;
    for(i=0;i<r1;i++)
    {
     for(j=0;j<c2;j++)
      {
       *((ptr3+c2*i)+j)=0;
         for(k=0;k<c1;k++)
           {
            *((ptr3+c2*i)+j)+=*((ptr3+c1*i)+k)**((ptr3+c2*k)+j);
              }
                }
                  }

  printf("The resultant matrix is\n");
   for(i=0;i<r1;i++)
    {
     for(j=0;j<c2;j++)
       {
        printf("%d\t",*((ptr3+c2*i)+j));
          }
           printf("\n");
             }
               }

Output:




Comments