Modify the following code below and follow exactly all given instructions: 1) In
ID: 3872742 • Letter: M
Question
Modify the following code below and follow exactly all given instructions:
1) In the functions set_difference and set_complement eliminate all loop index variables (int i and i) with a pointer.
2) Use that pointer to do the exactly role as loop index variables (int i and i) does.
3) Do not modify any of the code below expect for replacing all loop index variables (int i and i) with a pointer to do the same job as a loop index variable would.
#include <stdio.h>
void set_difference(int *a, int *b, int n, int *difference);
void set_complement(int *a, int n, int *complement);
int main()
{
int sizeOfA;
int sizeOfB;
int n = 10;
int setA[10] = {0,0,0,0,0,0,0,0,0,0}, setB[10] = {0,0,0,0,0,0,0,0,0,0};
int diff[10] = {0,0,0,0,0,0,0,0,0,0}, Acomplement[10] = {0,0,0,0,0,0,0,0,0,0}, Bcomplement[10] = {0,0,0,0,0,0,0,0,0,0};
int i, ele;
printf("Please enter the number of elements in set A: ");
scanf("%d", &sizeOfA);
printf(" Enter the numbers in set A: ");
for(i = 0; i < sizeOfA; i++)
{
scanf("%d", &ele);
setA[ele] = 1;
}
printf(" Please enter the number of elements in set B: ");
scanf("%d", &sizeOfB);
printf(" Enter the numbers in set B: ");
for(i = 0; i < sizeOfB; i++)
{
scanf("%d", &ele);
setB[ele] = 1;
}
set_difference(setA,setB,n,diff);
printf(" Output: ");
printf(" The difference of set A and B is: ");
for(i = 0; i < n; i++)
{
if(diff[i] == 1)
printf("%d ", i);
}
set_complement(setA,n,Acomplement);
printf(" The complement of set A is: ");
for(i = 0; i < 10; i++)
{
if(Acomplement[i] == 1)
printf("%d ", i);
}
set_complement(setB,n,Bcomplement);
printf(" The complement of set B is: ");
for(i = 0; i < 10; i++)
{
if(Bcomplement[i] == 1)
printf("%d ", i);
}
}
void set_difference(int *a, int *b, int n, int *difference)
{
int i;
for(i = 0; i < n; i++)
{
if(*(a+i) == 1)
{
if(*(a+i) != *(b+i))
{
*(difference++) = 1;
}
}
}
}
void set_complement(int *a, int n, int *complement)
{
int i;
for(i = 0; i < n; i++)
{
if(*(a + i) == 0)
{
*(complement + i) = 1;
}
}
}
Explanation / Answer
#include <stdio.h>
void set_difference(int *a, int *b, int n, int *difference);
void set_complement(int *a, int n, int *complement);
int main()
{
int sizeOfA;
int sizeOfB;
int n = 10;
int setA[10] = {0,0,0,0,0,0,0,0,0,0}, setB[10] = {0,0,0,0,0,0,0,0,0,0};
int diff[10] = {0,0,0,0,0,0,0,0,0,0}, Acomplement[10] = {0,0,0,0,0,0,0,0,0,0}, Bcomplement[10] = {0,0,0,0,0,0,0,0,0,0};
int i, ele;
printf("Please enter the number of elements in set A: ");
scanf("%d", &sizeOfA);
printf(" Enter the numbers in set A: ");
for(i = 0; i < sizeOfA; i++)
{
scanf("%d", &ele);
setA[ele] = 1;
}
printf(" Please enter the number of elements in set B: ");
scanf("%d", &sizeOfB);
printf(" Enter the numbers in set B: ");
for(i = 0; i < sizeOfB; i++)
{
scanf("%d", &ele);
setB[ele] = 1;
}
set_difference(setA,setB,n,diff);
printf(" Output: ");
printf(" The difference of set A and B is: ");
for(i = 0; i < n; i++)
{
if(diff[i] == 1)
printf("%d ", i);
}
set_complement(setA,n,Acomplement);
printf(" The complement of set A is: ");
for(i = 0; i < 10; i++)
{
if(Acomplement[i] == 1)
printf("%d ", i);
}
set_complement(setB,n,Bcomplement);
printf(" The complement of set B is: ");
for(i = 0; i < 10; i++)
{
if(Bcomplement[i] == 1)
printf("%d ", i);
}
}
void set_difference(int *a, int *b, int n, int *difference)
{
int *i=(int *)malloc(sizeof(int));
for(*i = 0; (*i) < n; (*i)++)
{
if(*(a+(*i)) == 1)
{
if(*(a+(*i)) != *(b+(*i)))
{
*(difference++) = 1;
}
}
}
}
void set_complement(int *a, int n, int *complement)
{
int *i=(int *)malloc(sizeof(int));
for(*i = 0; (*i) < n; (*i)++)
{
if(*(a + (*i)) == 0)
{
*(complement + (*i)) = 1;
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.