С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; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
					Загрузка…
					
					
				
		Ссылка в новой задаче