Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Practice pointer arithmetic Change the following C code with array indexing to u

ID: 3549623 • Letter: P

Question

Practice pointer arithmetic


Change the following C code with array indexing to using pointer arithmetic:

#include<stdio.h>

#include<conio.h>

void read(int c[],int);

void  display(int d[],int);

void  inverse(int x[],int);

void main()

{

int a[6],i;

read(a,6);

display(a,6);

inverse(a,6);

display(a,6);

getch();

}

void read(int c[],inti)

  {

       int j;

       printf("Enter six element for an array ");

       for(j=0;j<i;j++)

       scanf("%d",&c[j]);

  }

void display(int d[],inti)

  {

       int j;

       printf("Element in array are : ");

       for(j=0;j<i;j++)

       printf("%d  ",d[j]);

       printf(" ");

  }

void inverse(int x[],int k)

{

inti,temp;

k--;

for(i=0;i<(k/2);i++)

       {

       temp=x[i];

       x[i]=x[k];

       x[k]=temp;

       k--;

       }

  }


Explanation / Answer

Dear,


The following isa the modified code using pointer notation:


void read(int *c,int);
void display(int *d,int);
void inverse(int *x,int);

void main()

{

int a[6],i;

read(a,6);

display(a,6);

inverse(a,6);

display(a,6);

getch();

}

void read(int c[],int i)

{

int j;

printf("Enter six element for an array ");

for(j=0;j<i;j++)

scanf("%d",&*(c+j));

}

void display(int *d,int i)

{

int j;

printf("Element in array are : ");

for(j=0;j<i;j++)

printf("%d ",*(d+j));

printf(" ");

}

void inverse(int *x,int k)

{

int i,temp;

k--;

for(i=0;i<(k/2);i++)

{

temp=*(x+i);

*(x+i)=*(x+k);

*(x+k)=temp;

k--;

}

}

Sample Run:

Enter six element for an array
1
2
3
4
5
6
Element in array are :
1 2 3 4 5 6
Element in array are :
6 5 3 4 2 1

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote