2.6k views

A program $P$ reads in $500$ integers in the range $[0, 100]$ representing the scores of $500$ students. It then prints the frequency of each score above $50$. What would be the best way for $P$ to store the frequencies?

1. An array of $50$ numbers

2. An array of $100$ numbers

3. An array of $500$ numbers

4. A dynamically allocated array of $550$ numbers

edited | 2.6k views
0
I think its option A. What do u think>?
0
0
please explain sir. Also, why is it not option C ?
0
how option A
+1
Here,  given prints the frequency of each score above 50 that means  500/ ( avobe 50) =  less than 10 score.

only 9 score which frelquency is avobe 50. we requare only an array of 9 number .

So by question best answer is (A)  .
0
we have to evaluate 500 records ranging between 0-100 but in the end we are interested in only marks greater than 50(printing frequency of each marks 51,52,...100) so only an array of size 50 will suffice...

As we our area of interest is only the $50$ numbers so take An array of $50$ numbers where $A[0]$ corresponds to $51...A[49]$ corresponds to $100$ then after reading an input just increment the counter in correct position as said above.
edited
0
frequency of each score above 50:

@bhagirathi mam

here frequency means continue incresing by 1? till 100

rght?
+4

frequency : Number of times score is repeated i.e. 51 marks are getting by 10 students so the frequency of 51 is 10.

0
@bhagirathi why r u taking this "An array of 50 numbers where A[0] corresponds to 51...A[49] corresponds to 100 "?
0
@suvasish Because the problem statement asks for the frequency of student who scored more than 50 so why bother storing irrelevant data?
0

@ saxena0612 i understood that ,but A[0] can be 60 rather than 51?

0
Yes it can be! but iterating serially would be convenient rather than randomly .. Hope that make sense?
Like if you want to store the frequency of 60 in a[0] then presenting the complete chart of frequency would take a much longer than the stated way.
+2
We can think it of hash table of 50 numbers
0
nice bhagirathi
0
It means if it found that 3 students got 51 marks then count is 3 and prints 3... And again it checks for 52... And if 2 students got 52 its count is 2....and again checks for 53.... 54.......... 100....

And in array of frequency

F[ 50] ={3,2,.....}

So absolutely the correct answer is "A" the array of 50 integers

Am I ryt?
Let read () be a function which returns the current value read from given  500 integers.

P[50] array of 50 elements ,where all elements is initialized to 0.

Program P()
{
For(i=1 to 500)
{
if(x>50)
{
P[x%50]++; // here we can use P[x] ++ but  for that we would require array of size 100
}
}
}

edited