|  |  |  | @ -2,23 +2,28 @@ | 
			
		
	
		
			
				
					|  |  |  |  | #include <vector> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | using namespace std; | 
			
		
	
		
			
				
					|  |  |  |  | int main() | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |  | struct Input { | 
			
		
	
		
			
				
					|  |  |  |  |     vector<double> numbers; | 
			
		
	
		
			
				
					|  |  |  |  |     size_t bin_count{}; | 
			
		
	
		
			
				
					|  |  |  |  | }; | 
			
		
	
		
			
				
					|  |  |  |  | Input | 
			
		
	
		
			
				
					|  |  |  |  | input_data(){ | 
			
		
	
		
			
				
					|  |  |  |  |     size_t number_count; | 
			
		
	
		
			
				
					|  |  |  |  |     cerr <<"enter number count: "; | 
			
		
	
		
			
				
					|  |  |  |  |     cerr << "Number_count: "; | 
			
		
	
		
			
				
					|  |  |  |  |     cin >> number_count; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     vector<double> numbers(number_count); | 
			
		
	
		
			
				
					|  |  |  |  |     for( int i=0; i<number_count; i++){ | 
			
		
	
		
			
				
					|  |  |  |  |         cerr<<"enter number "<< i+1<<": "; | 
			
		
	
		
			
				
					|  |  |  |  |         cin>>numbers[i]; | 
			
		
	
		
			
				
					|  |  |  |  |     Input in; | 
			
		
	
		
			
				
					|  |  |  |  |     in.numbers.resize(number_count); | 
			
		
	
		
			
				
					|  |  |  |  |     for (size_t i = 0; i < number_count; i++) { | 
			
		
	
		
			
				
					|  |  |  |  |         cin >> in.numbers[i]; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     size_t bin_count; | 
			
		
	
		
			
				
					|  |  |  |  |     cerr <<"enter bin count : "; | 
			
		
	
		
			
				
					|  |  |  |  |     cin >> bin_count; | 
			
		
	
		
			
				
					|  |  |  |  |     vector<size_t> bins(bin_count); | 
			
		
	
		
			
				
					|  |  |  |  |     double min=numbers[0]; | 
			
		
	
		
			
				
					|  |  |  |  |     double max=numbers[0]; | 
			
		
	
		
			
				
					|  |  |  |  |     cerr << "Enter bin_count: "; | 
			
		
	
		
			
				
					|  |  |  |  |     cin >> in.bin_count; | 
			
		
	
		
			
				
					|  |  |  |  |     return in; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | void | 
			
		
	
		
			
				
					|  |  |  |  | find_minmax(const vector<double>& numbers, double& min, double& max) { | 
			
		
	
		
			
				
					|  |  |  |  |     min = numbers[0]; | 
			
		
	
		
			
				
					|  |  |  |  |     max = numbers[0]; | 
			
		
	
		
			
				
					|  |  |  |  |     for(double x : numbers){ | 
			
		
	
		
			
				
					|  |  |  |  |         if(x<min){ | 
			
		
	
		
			
				
					|  |  |  |  |             min=x; | 
			
		
	
	
		
			
				
					|  |  |  | @ -27,8 +32,14 @@ int main() | 
			
		
	
		
			
				
					|  |  |  |  |             max=x; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | vector<size_t> | 
			
		
	
		
			
				
					|  |  |  |  | make_histogram(const vector<double>& numbers,size_t bin_count){ | 
			
		
	
		
			
				
					|  |  |  |  |     vector<size_t> bins(bin_count); | 
			
		
	
		
			
				
					|  |  |  |  |     double min,max; | 
			
		
	
		
			
				
					|  |  |  |  |     find_minmax(numbers,min,max); | 
			
		
	
		
			
				
					|  |  |  |  |     double bin_size=(max-min)/bin_count; | 
			
		
	
		
			
				
					|  |  |  |  |     for(size_t i=0; i<number_count; i++){ | 
			
		
	
		
			
				
					|  |  |  |  |     for(size_t i=0; i<numbers.size(); i++){ | 
			
		
	
		
			
				
					|  |  |  |  |         bool found = false; | 
			
		
	
		
			
				
					|  |  |  |  |         for(size_t j=0;(j<bin_count-1)&& !found; j++){ | 
			
		
	
		
			
				
					|  |  |  |  |             auto lo=min+j*bin_size; | 
			
		
	
	
		
			
				
					|  |  |  | @ -41,6 +52,10 @@ int main() | 
			
		
	
		
			
				
					|  |  |  |  |             bins[bin_count-1]++; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     return bins; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | void | 
			
		
	
		
			
				
					|  |  |  |  | show_histogram(vector<size_t>bins,size_t bin_count){ | 
			
		
	
		
			
				
					|  |  |  |  |     size_t Maxbins = 0; | 
			
		
	
		
			
				
					|  |  |  |  |     for (size_t i = 0; i < bin_count; i++) | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
	
		
			
				
					|  |  |  | @ -88,5 +103,12 @@ int main() | 
			
		
	
		
			
				
					|  |  |  |  |             cout << endl; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | int | 
			
		
	
		
			
				
					|  |  |  |  | main() { | 
			
		
	
		
			
				
					|  |  |  |  |     auto in = input_data(); | 
			
		
	
		
			
				
					|  |  |  |  |     auto bins = make_histogram(in.numbers, in.bin_count); | 
			
		
	
		
			
				
					|  |  |  |  |     show_histogram(bins,in.bin_count); | 
			
		
	
		
			
				
					|  |  |  |  |     return 0; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |