Сommit
						8fa89f30a2
					
				| @ -0,0 +1,102 @@ | |||||||
|  | #include <iostream> | ||||||
|  | #include <vector> | ||||||
|  | using namespace std; | ||||||
|  | 
 | ||||||
|  | int main() | ||||||
|  | { | ||||||
|  | 	size_t numbers, columns, count; | ||||||
|  | 	float minn, maxx, diff, lo, hi; | ||||||
|  | 
 | ||||||
|  | 	cerr << "Quantity of numbers = "; cin >> numbers; | ||||||
|  | 	vector<float> xs(numbers); | ||||||
|  | 	cerr << "Enter your numbers: "; | ||||||
|  | 
 | ||||||
|  | 	for (int i = 0; i < numbers; ++i) | ||||||
|  | 	{ | ||||||
|  | 		cin >> xs[i]; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	cerr << "Columns = "; cin >> columns; | ||||||
|  | 	vector<size_t> a(columns); | ||||||
|  | 
 | ||||||
|  | 	maxx = xs[0]; | ||||||
|  | 	minn = xs[0]; | ||||||
|  | 	for (int i = 0; i < numbers; i++) | ||||||
|  | 	{ | ||||||
|  | 		if (xs[i] > maxx) | ||||||
|  | 			maxx = xs[i]; | ||||||
|  | 		else | ||||||
|  | 		{ | ||||||
|  | 			if (xs[i] < minn) | ||||||
|  | 				minn = xs[i]; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	diff = (maxx - minn) / columns; | ||||||
|  | 	lo = minn; | ||||||
|  | 
 | ||||||
|  | 	size_t max_count = 0; | ||||||
|  | 	for (int i = 0; i < columns; ++i) | ||||||
|  | 	{ | ||||||
|  | 		count = 0; | ||||||
|  | 
 | ||||||
|  | 		if (i != columns - 1) | ||||||
|  | 		{ | ||||||
|  | 			hi = lo + diff; | ||||||
|  | 		} | ||||||
|  | 		else | ||||||
|  | 		{ | ||||||
|  | 			hi = maxx; | ||||||
|  | 		} | ||||||
|  | 		for (int j = 0; j < numbers; j++) | ||||||
|  | 		{ | ||||||
|  | 			if (i == 0) | ||||||
|  | 			{ | ||||||
|  | 				if ((xs[j] >= lo) && (xs[j] <= hi)) | ||||||
|  | 					count++; | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			else | ||||||
|  | 			{ | ||||||
|  | 				if ((xs[j] > lo) && (xs[j] <= hi)) | ||||||
|  | 					count++; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		a[i] = count; | ||||||
|  | 		lo = hi; | ||||||
|  | 
 | ||||||
|  | 		if (max_count < a[i]) | ||||||
|  | 			max_count = a[i]; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	const size_t SCREEN_WIDTH = 80; | ||||||
|  | 	const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; | ||||||
|  | 	size_t height; | ||||||
|  | 	for (int i = 0; i < columns; i++) | ||||||
|  | 	{ | ||||||
|  | 
 | ||||||
|  | 		if (a[i] == 0) | ||||||
|  | 			continue; | ||||||
|  | 
 | ||||||
|  | 		if (a[i] < 10) | ||||||
|  | 			cout << "  "; | ||||||
|  | 		else | ||||||
|  | 			if (a[i] < 100) | ||||||
|  | 				cout << " "; | ||||||
|  | 
 | ||||||
|  | 		cout << a[i] << "|"; | ||||||
|  | 
 | ||||||
|  | 		if (max_count > MAX_ASTERISK) | ||||||
|  | 			height = MAX_ASTERISK * (static_cast<double>(a[i]) / max_count); | ||||||
|  | 		else | ||||||
|  | 			height = a[i]; | ||||||
|  | 
 | ||||||
|  | 		for (int j = 0; j < height; j++) | ||||||
|  | 		{ | ||||||
|  | 			cout << "*"; | ||||||
|  | 		} | ||||||
|  | 		cout << endl; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | } | ||||||
					Загрузка…
					
					
				
		Ссылка в новой задаче