|  |  | @ -3,34 +3,58 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | using namespace std; |  |  |  | using namespace std; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | int main() |  |  |  | struct Input { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | { |  |  |  |     vector<double> numbers; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     const size_t SCREEN_WIDTH = 80; |  |  |  |     size_t bin_count{}; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; |  |  |  | }; | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | Input | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | input_data() { | 
			
		
	
		
		
			
				
					
					|  |  |  |     size_t number_count; |  |  |  |     size_t number_count; | 
			
		
	
		
		
			
				
					
					|  |  |  |     size_t bin_count; |  |  |  |     Input in; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     cerr << "Enter number count: "; |  |  |  |     cerr << "Enter number count: "; | 
			
		
	
		
		
			
				
					
					|  |  |  |     cin >> number_count; |  |  |  |     cin >> number_count; | 
			
		
	
		
		
			
				
					
					|  |  |  |     vector<double> numbers(number_count); |  |  |  |     vector<double> numbers(number_count); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     for (size_t i = 0; i < number_count; i++) |  |  |  |     in.numbers.resize(number_count); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         cin >> numbers[i]; |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     double min = numbers[0]; |  |  |  |     for (size_t i = 0; i < number_count; i++) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     double max = numbers[0]; |  |  |  |         cin >> in.numbers[i]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     double max_count = 0; |  |  |  |     } | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     cerr << "Enter bins 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 value : numbers) |  |  |  |     for (double value : numbers) | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (value < min) {min = value;} |  |  |  |         if (value < min) {min = value;} | 
			
		
	
		
		
			
				
					
					|  |  |  |         else if (value > max) {max = value;} |  |  |  |         else if (value > max) {max = value;} | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     cerr << "Enter bins count: "; |  |  |  | int main() | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     cin >> bin_count; |  |  |  | { | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     const size_t SCREEN_WIDTH = 80; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Input in = input_data(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     double min, max; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     find_minmax(in.numbers, min, max); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     double max_count = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     size_t bin_count=in.bin_count; | 
			
		
	
		
		
			
				
					
					|  |  |  |     vector<size_t> bins(bin_count); |  |  |  |     vector<size_t> bins(bin_count); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     size_t number_count=in.numbers.size(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     double bin_size = (max - min) / bin_count; |  |  |  |     double bin_size = (max - min) / bin_count; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -38,7 +62,7 @@ int main() | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |         for (size_t j = i + 1; j < number_count; j++) |  |  |  |         for (size_t j = i + 1; j < number_count; j++) | 
			
		
	
		
		
			
				
					
					|  |  |  |         { |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (numbers[i] == numbers[j]) |  |  |  |             if (in.numbers[i] == in.numbers[j]) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             { |  |  |  |             { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 //numbers.erase(numbers.begin() + j);
 |  |  |  |                 //numbers.erase(numbers.begin() + j);
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                 //number_count--;
 |  |  |  |                 //number_count--;
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -55,7 +79,7 @@ int main() | 
			
		
	
		
		
			
				
					
					|  |  |  |         { |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 auto low_bound = min + j * bin_size; |  |  |  |                 auto low_bound = min + j * bin_size; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 auto high_bound = min + (j + 1) * bin_size; |  |  |  |                 auto high_bound = min + (j + 1) * bin_size; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if ((low_bound <= numbers[i]) && (numbers[i] < high_bound)) |  |  |  |                 if ((low_bound <= in.numbers[i]) && (in.numbers[i] < high_bound)) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 { |  |  |  |                 { | 
			
		
	
		
		
			
				
					
					|  |  |  |                     bins[j]++; |  |  |  |                     bins[j]++; | 
			
		
	
		
		
			
				
					
					|  |  |  |                     found = true; |  |  |  |                     found = true; | 
			
		
	
	
		
		
			
				
					|  |  | 
 |