for c Modify the solution to exercise 11186 so that it can h
for c++ Modify the solution to exercise 11186 so that it can handle duplicates in the input. Hint: change the bool array to an array of int . The instructions for 11186 are repeated below: 11186: In this exercise, you will write some code that reads n unique (no duplicates!) non-negative integers , each one less than fifty (50). Your code will print them in sorted order without using any nested loops. We\'ll walk you through this: First, assume you are given an int variable n, that contains the number of integers to read from standard input. Second, given a bool array wasReadin and int n, which have already been declared , initialize all elements in the array to false . Third, read in the n integers from the input, and each time you read an integer , use it as an index into the bool array , and assign that element to be true -- thus \"marking\" in the array which numbers have been read. Write a loop that traverses the bool array : every time it finds an element that is true it prints out the element \'s INDEX -- which was one of the integers read in. Place all the numbers on a single line, separated by a single spaces. Note: this technique is not limited to 50 elements -- it works just as well for larger values . Thus, for example you could have an array of 1,000,000 elements .
Solution
int number;
for (int i=0; i<50; i++)
{
wasReadIn[i]=0;
}
for (int i=0; i<n; i++)
{
cin >> number;
wasReadIn[number]++;
}
for(int i=0; i<50; i++)
{
if(wasReadIn[i]>0)
{
for(int j=0; j<wasReadIn[i]; j++)
{
cout << i << \" \";
}
}
}
