Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...

You have an int array with n elements and a structure with
three int members.
ie
struct No
{
unsigned int no1;
unsigned int no2;
unsigned int no3;
};
Point1.Lets say 1 byte in the array element is represented
like this - 1st 3 bits from LSB is one number, next 2 bits
are 2nd no and last 3 bits are 3rd no.

Now write a function, struct No* ExtractNos(unsigned int *,
int count)
which extracts each byte from array and converts LSByte in
the order mentioned in point1.and save it the structure
no1, no2, no3.

in the function struct No* ExtractNos(unsigned int *, int
count), first parameter points to the base address of array
and second parameter says the no of
elements in the array.

For example: if your array LSB is Hex F7 then result no1 =
7, no2 = 2, no3 = 7. In the same way convert all the
elements from the array and save the result in array of
structure.

Answer Posted / vadivelt


#include<stdio.h>
struct No* ExtractNos(unsigned int *p, unsigned int count);

struct No
{
unsigned int no1;
unsigned int no2;
unsigned int no3;
};

void main()
{
unsigned int array[20],*p, count, i;
struct No *r;
printf("ENTER THE NO OF ELEMENTS IN THE ARRAY: \n");
scanf("%d", &count);

printf("ENTER TH ELEMENTS IN THE ARRAY:\n");
for(i = 0; i<count; i++)
{
scanf("%d", &array[i]);
}

p = &array[0];
r = ExtractNos(p, count);
printf("\n");

for(i = 0; i<count; i++)
{
printf("ELEMENT IN THE STRUCTURE %d \n", (i+1));
printf("NO1: %d\nNO2: %d\nNO3: %d \n\n", r->no1, r->no2, r-
>no3);
r++;
}

getch();
}

struct No* ExtractNos(unsigned int *p, unsigned int count)
{
int i;
struct No *q;
q = (struct No*)malloc(sizeof(struct No)*count);
if(p != NULL && q != NULL && count > 0)
{
for(i = 0; i<count; i++)
{
q->no1 = (*p & 0x07);
q->no2 = (*p & 0x18) >> 3;
q->no3 = (*p & 0xE0) >> 5;
q++;
p++;
}
}
return (q - count);
}

Is This Answer Correct ?    3 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

why return type of main is not necessary in linux

2104


This is a variation of the call_me function in the previous question:call_me (myvar)int *myvar;{ *myvar += 5; }The correct way to call this function from main() will be a) call_me(myvar) b) call_me(*myvar) c) call_me(&myvar) d) expanded memory

1265


How do you determine the length of a string value that was stored in a variable?

1119


what is the difference between 123 and 0123 in c?

1201


How can type-insensitive macros be created?

1168


which of the following is allowed in a "C" arithematic instruction a) [] b) {} c) () d) none of the above

1715


Can we change the value of #define in c?

996


What is structure padding in c?

1127


Hi can anyone tell what is a start up code?

2061


What is the difference between functions abs() and fabs()?

1148


What is c standard library?

1201


How can you be sure that a program follows the ANSI C standard?

1599


Which header file is used for clrscr?

1051


What is meant by errors and debugging?

1099


When I tried to go into a security sites I am denied access and a message appeared saying 'applet not initialize'. How can I rectify this problem.

1979