Advertisement
Milaj

Untitled

Nov 26th, 2015
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. // Гистограмма.cpp: определяет точку входа для консольного приложения.
  2. #include <stdio.h>
  3. #include "stdafx.h"
  4. #include <iostream>
  5.  
  6. int main()
  7. {
  8. setlocale(LC_ALL, "Russian"); // русский язык и начинай
  9. int i, k, f, no, a,z, c; int nd[10];
  10. no = a = c = i = f = z= 0;
  11. // c - строка; i,k - счетчик; f - счетчик наибольшего процента;
  12. // a -кво символов; no-остальные символы; nd=массив; float nd=%массивов;
  13. printf("Введите число\n(В конце потока нажмите [ENTER]): \n");
  14. for (i = 0; i < 10; ++i) // Цикл для обнуления массиввов с 0 по 9..
  15. { nd[i]=0; }
  16. // создал массив
  17. while ((c = getchar()) != '\n') // Основной цикл программы:
  18. {
  19. if (c >= '0' && c <= '9') // Запись переменных в nd[10] или в no..
  20. ++nd[c - 48];
  21. else
  22. ++no;
  23. }
  24. for (i = 0; i < 10; i++)
  25. {
  26. a = a + (nd[i]);
  27. if (f < nd[i]) // где F наибольшее значение
  28. f = nd[i]; // где F наибольшее значение
  29. }
  30.  
  31. for (i = 0; i < 10; ++i)
  32. {
  33. z = ((nd[i]*10)/(float) f + 0.5); //- размер столбика шириной в k
  34. printf("[%d] = %4.f|", i, (float)nd[i]);
  35. for (k = 0; k != z; ++k) // k - счетчик
  36. printf("*");
  37. printf("\n");
  38. }
  39. printf("[За единицу при построении взято] = %4.2f\n", 10/(float)f);
  40. printf("[Всего введено символов]= %d \n[Веддено символов отличных от 0..9]= %d\n[Пикововое Значение гистограммы]= %d", a+no, no, f);
  41. //-----------------------------------------------------------------------------------
  42. // вертикальная
  43. printf("\n\nВертикальная:\n");
  44. /*for (i = 10; i>=0; --i)
  45. {
  46. if (nd[i] == 0)
  47. z = 0;
  48. else
  49. z = (((nd[i] * 10) / (float)f)*2);
  50. for (k = 10; k >= z; --k)
  51. {
  52. if (z == i)
  53. {
  54. printf("[#]");
  55. nd[k] = nd[k] - 1;
  56. }
  57. else
  58. printf("[ ]");
  59. }
  60. printf("\n");
  61. }*/
  62.  
  63. for (k = 11; k>0; --k)
  64. {
  65. for (i = 0; i < 10; i++)
  66. {
  67. z = ((10 * nd[i]) / f) + 0.5;
  68. if (nd[i] != EOF)
  69. {
  70. if (k > 0 && k == z)
  71. {
  72. printf("[*]");
  73. nd[i] = EOF;
  74. }
  75. else if (k != z)
  76. printf("[ ]");
  77. }
  78. else
  79. {
  80. printf("[*]");
  81. }
  82. }
  83. printf("\n");
  84. }
  85. for (i = 0; i < 15; i++)
  86. printf("--");
  87.  
  88. printf("\n");
  89. for (i = 0; i < 10; i++)
  90. printf("[%d]", i);
  91. while (getchar() != EOF); // чтоб не закрывалась консолька
  92. return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement