Create a program that will generate twenty (20) random numbers from the range 1 to 9. The twenty random numbers shall be stored in a generic list. Print a horizontal histogram, representing the occurrence of each digit. Display also the generated combinations. 2. Refer to the sample output given below.
(Sample Ouput)
Welcome to my GENERIC LIST PROGRAM
The 20 random numbers are: 3 4 1 7 8 5 6 3 4 9 3 5 1 3 4 2 8 9 5 9
Histogram:
1 **
2 *
3 ****
4 ***
5 ***
6 *
7 *
8 **
9 ***
class Program
{
const int AMOUNT_OF_RANDOM_NUMBERS = 20;
static int GenerateRandomNumber(int min, int max)
{
return new Random().Next(min, max + 1);
}
static List<int> GenerateListOfRandomNumbers(int min, int max)
{
List<int> randomNumbers = new List<int>();
for(int i = 0; i < AMOUNT_OF_RANDOM_NUMBERS; i++)
{
int randomNumber = GenerateRandomNumber(min, max);
randomNumbers.Add(randomNumber);
}
return randomNumbers;
}
static List<int> RemoveDuplicates(List<int> numbers)
{
HashSet<int> uniqueNumbers = new HashSet<int>(numbers);
return new List<int>(uniqueNumbers);
}
static int CountOccurrencesOfTheNumber(int number, List<int> numbers)
{
int occurrences = 0;
for(int i = 0; i < numbers.Count; i++)
{
if (numbers[i] == number)
occurrences++;
}
return occurrences;
}
static List<int> GetOccurencesForNumbers(List<int> uniqueNumbers, List<int> randomNumbers)
{
List<int> occurencesOfNumbers = new List<int>();
foreach(int number in uniqueNumbers)
{
int occurences = CountOccurrencesOfTheNumber(number, randomNumbers);
occurencesOfNumbers.Add(occurences);
}
return occurencesOfNumbers;
}
static void Main()
{
List<int> randomNumbers = GenerateListOfRandomNumbers(1, 9);
Console.WriteLine("Welcome to my GENERIC LIST PROGRAM");
Console.Write("The 20 random numbers are: ");
randomNumbers.ForEach(number => Console.Write(number + " "));
List<int> uniqueNumbers = RemoveDuplicates(randomNumbers);
uniqueNumbers.Sort();
List<int> occurrencesOfNumbers = GetOccurencesForNumbers(uniqueNumbers, randomNumbers);
Console.WriteLine("\n\nHistogram:");
for (int i = 0; i < uniqueNumbers.Count; i++)
{
Console.Write(uniqueNumbers[i] + " ");
for (int j = 0; j < occurrencesOfNumbers[i]; j++)
Console.Write('*');
Console.WriteLine();
}
Console.ReadKey();
}
}
Comments
Leave a comment