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.
Answers were Sorted based on User's Feedback
Answer / 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 |
write a program that finds the factorial of a number using recursion?
Can you return null in c?
Explain pointers in c programming?
Table of Sudoku n*n
What does %p mean?
how to make program without <> in libray.
how does a general function , that accepts an array as a parameter, "knows" the size of the array ? How should it define it parameters list ?
why we shiuld use main keyword in C
What is the auto keyword good for?
Are there any problems with performing mathematical operations on different variable types?
What does sizeof return c?
write a program to remove duplicate from an ordered char array? in c