Please help me in writin the program that: inserts random integers between 0-150
ID: 3548616 • Letter: P
Question
Please help me in writin the program that: inserts random integers between 0-150 into a list and perform some calculations
- Prompt user to ask them the number of elements in your list
-Thhen, get that many random numbers between 0-150 and put them in the list
-Number you random list numbers so use an iterator to put the list number's into a map but keep the list
- key ==> number the random number that was generated in starting at 1
- The value will be the random number
- use an iterator to print the two fields lined up on the right with field widths in two columns with numbers labeled with column headings of key and value.
- Work with list to perform some calculations:
- sort the numbers in list
- use iterators
algorithms
list functions (not user's input variable)
to find : sum
mean
median (find size and move up half way)
range
a random number from a random spot from list of random number (get random number in proper range with rand() and move up that many spots in list.
-Then, print the labeled values
- use your iterator to put the now sorted list numbers back into the map ==> this will change the original map's order
key ==> starting at 1
value ==> random number in their sorted order
-Again, use an iterator to print the two fields lined up on the right with field widths in 2 columns with numbers' labeled with column heading of key and value.
1st run = 5 nodes.
Explanation / Answer
#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
#include<stdlib.h>
#include<time.h>
#include <numeric>
using namespace std;
int main()
{
int no_of_elements;
srand(time(NULL));
cout <<"Enter number of elements in your list :";
cin >> no_of_elements;
cout << endl;
vector<int> integer_vector;
map<int,int> integer_map;
for(int i=0; i<no_of_elements; i++)
integer_vector.push_back(rand()%151);
int i=0;
for(vector<int>::iterator it = integer_vector.begin(); it!= integer_vector.end();it++)
integer_map[++i] = *it;
cout << "Key" << " => " << "Value" << ' ';
for(map<int,int>::iterator it=integer_map.begin(); it!=integer_map.end(); ++it)
cout << it->first << " => " << it->second << ' ';
//sort the numbers in list
sort (integer_vector.begin(), integer_vector.end());
cout <<"Sum of Elements of list is " << accumulate(integer_vector.begin(),integer_vector.end(), 0) << endl;
cout <<"Mean of list is " << static_cast<double> (accumulate(integer_vector.begin(),integer_vector.end(), 0))/integer_vector.size() << endl;
if(integer_vector.size()%2==0)
cout <<"Median of list is " << static_cast<double> (integer_vector[integer_vector.size()/2] + integer_vector[(integer_vector.size()/2)-1])/2 << endl;
else
cout <<"Median of list is " << integer_vector[(integer_vector.size()/2)-1] << endl;
cout <<"Range of list is " << *min_element(integer_vector.begin(), integer_vector.end()) << " " << *max_element(integer_vector.begin(), integer_vector.end()) << endl;
//a random number from a random sport from list of random number ==> get random number in proper ranges with rand()
//and move up that many spots in list.
int new_random_number = rand()%151;
for(vector<int>::iterator it = integer_vector.begin(); it!=integer_vector.end(); it++)
{
if(new_random_number<*it)
{
integer_vector.insert(it,new_random_number);
break;
}
}
cout <<"Ater inserting new random number " <<new_random_number << " in list, now list is " << endl;
//After inserting new random number in list. values are...
for(vector<int>::iterator it = integer_vector.begin(); it!=integer_vector.end(); it++)
cout <<*it << " ";
cout << endl;
//- use your iterator to put the now sorted list numbers back into the map ===> this will change the originals map's order
integer_map.clear();
int index=0;
//Again, use an iterator to print the two fields lined up on the right with field widths in two columns with numbers labeled
//with column heading of key and value
for(vector<int>::iterator it = integer_vector.begin(); it!=integer_vector.end(); it++)
integer_map[++index] = *it;
cout << "Key" << " => " << "Value" << ' ';
for(map<int,int>::iterator it=integer_map.begin(); it!=integer_map.end(); ++it)
cout << it->first << " => " << it->second << ' ';
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.