Advertisement
Milaj

Untitled

Nov 26th, 2015
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 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.f ед.\n", 10/(float)f);
  40. printf("[Всего введено символов ]= %4.f ед.\n[Введено символов отличных от 0..9]= %4.f ед.\n[Пиковое Значение гистограммы ]= %4.f ед.", (float)a+no, (float)no, (float)f);
  41. //-----------------------------------------------------------------------------------
  42. // вертикальная
  43. printf("\n\nВертикальная:\n");
  44.  
  45. for (k = 10; k>0; --k)
  46. {
  47. for (i = 0; i < 10; i++)
  48. {
  49. z = ((10 * nd[i]) /(float)f) + 0.5;
  50. if (nd[i] != EOF)
  51. {
  52. if (k > 0 && k == z)
  53. {
  54. printf("[*]");
  55. nd[i] = EOF;
  56. }
  57. else if (k != z)
  58. printf("[ ]");
  59. }
  60. else
  61. {
  62. printf("[*]");
  63. }
  64. }
  65. printf("| %2.f строка \n", (float)k);
  66. }
  67. for (i = 0; i < 15; i++)
  68. printf("--");
  69.  
  70. printf("\n");
  71. for (i = 0; i < 10; i++)
  72. printf("[%d]", i);
  73. while (getchar() != EOF); // чтоб не закрывалась консолька
  74. return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement