Сommit
						7f8f5a5e9b
					
				| @ -0,0 +1,97 @@ | |||||||
|  | #include <iostream> | ||||||
|  | #include <vector> | ||||||
|  | 
 | ||||||
|  | using namespace std; | ||||||
|  | 
 | ||||||
|  | int main() | ||||||
|  | { | ||||||
|  |     const size_t SCREEN_WIDTH = 80; | ||||||
|  |     const size_t MAX_ASTERISK = SCREEN_WIDTH - 3-1; | ||||||
|  |     //Êîëè÷åñòâî ÷èñåë
 | ||||||
|  | 
 | ||||||
|  |     size_t number_count; | ||||||
|  |     cerr<<"Enter number count: "; | ||||||
|  |     cin>>number_count; | ||||||
|  |     vector<double>numbers(number_count); | ||||||
|  | 
 | ||||||
|  |     //×èñëà
 | ||||||
|  |     cerr<<"Enter elements: "; | ||||||
|  |     for (int i=0; i<number_count;i++){ | ||||||
|  |         cin>>numbers[i]; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     //Êîëè÷åñòâî êîðçèí
 | ||||||
|  |     size_t bin_count; | ||||||
|  |     cerr<<"Enter bins count: "; | ||||||
|  |     cin>>bin_count; | ||||||
|  |     vector<size_t>bins(bin_count); | ||||||
|  | 
 | ||||||
|  |     //Îïðåäåëåíèå äèàïàçîíà ÷èñåë (max è min) â ìàññèâå
 | ||||||
|  |     double min=numbers[0]; | ||||||
|  |     double max=numbers[0]; | ||||||
|  |     for (double x: numbers){ | ||||||
|  |         if (x<min){ | ||||||
|  |             min=x; | ||||||
|  |         } | ||||||
|  |         else if (x>max){ | ||||||
|  |             max=x; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         double bin_size=(max-min)/bin_count; | ||||||
|  | 
 | ||||||
|  |         for (size_t i=0; i<number_count; i++){ //Îïîçíîâàíèå è óâåëè÷. ñ÷åò÷èêà ïîñëåäíåé êîðçèíû
 | ||||||
|  |         bool found =false; | ||||||
|  |         for (size_t j=0; (j<bin_count-1)&&!found; j++){ | ||||||
|  |             auto lo=min+j*bin_size; | ||||||
|  |             auto hi = min+(j+1)*bin_size; | ||||||
|  |             if ((lo<=numbers[i])&&(numbers[i]<hi)){ | ||||||
|  |                 bins[j]++; | ||||||
|  |                 found=true; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if (!found){ | ||||||
|  |             bins[bin_count-1]++; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     //Ìàêñèìàëüíîå êîë-âî çâåçäî÷åê
 | ||||||
|  |     int max_simb=0; | ||||||
|  |     for (int i=0; i<bin_count;i++){ | ||||||
|  |         int c=0; | ||||||
|  |         c=bins[i]; | ||||||
|  |         if (max_simb<c){ | ||||||
|  |             max_simb=c; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |        if (max_simb > MAX_ASTERISK){ | ||||||
|  |         vector<size_t> hights(bin_count); | ||||||
|  |         for (size_t i = 0; i < bin_count; i++){ | ||||||
|  |             size_t height = MAX_ASTERISK * (static_cast<double>(bins[i]) / max_simb); | ||||||
|  |             hights[i] = height; | ||||||
|  |             printf("%3d|", bins[i]); | ||||||
|  |             for (int j=0; j<(hights[i]); j++){ | ||||||
|  |                 cout<<"*"; | ||||||
|  |             } | ||||||
|  |             cout<<endl; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |        } | ||||||
|  |         else{ | ||||||
|  |         for (int i=0; i<bin_count; i++){ | ||||||
|  |         printf("%3d|", bins[i]); | ||||||
|  |             for (int j=0; j<bins[i]; j++){ | ||||||
|  |                 cout<<"*"; | ||||||
|  |             } | ||||||
|  |             cout<<endl; | ||||||
|  |         } | ||||||
|  |        } | ||||||
|  | 
 | ||||||
|  |     return 0; | ||||||
|  | } | ||||||
					Загрузка…
					
					
				
		Ссылка в новой задаче