Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1. // lab4.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6. #include <cstdlib>
  7. #include <ctime> // содержит time()
  8. #include <string>
  9.  
  10. //Вариант 16
  11. //Написать программу, которая вычисляет, сколько раз введенное с клавиатуры
  12. //число встречается в массиве.
  13.  
  14. using namespace std;
  15.  
  16. int vvod_chisla() {
  17. int number;
  18. while (true)
  19. {
  20. cout << "Введите число " << endl;
  21. cin >> number;
  22. if (cin.good() && number >= 0)
  23. {
  24. cin.ignore(10, '\n');
  25. break;
  26. }
  27. cin.clear();
  28. cout << "Неправильный ввод " << endl;
  29. cin.ignore(10, '\n');
  30. }
  31. return number;
  32. }
  33.  
  34. string sklonenie(int i) {
  35.  
  36. switch (i)
  37. {
  38. case 2:
  39. case 3:
  40. case 4:
  41. return "раза";
  42. break;
  43. default:
  44. return "раз";
  45. break;
  46. }
  47. }
  48.  
  49. void mainf() {
  50. int chislo = 0;
  51. char otv; // ответ
  52.  
  53. srand(time(NULL)); //Создаем рандомное число, иначе каждый раз числа будут повторяться
  54. //time(NULL) получить текущую дату, выраженную в секундах
  55. //Функция srand выполняет инициализацию генератора случайных чисел rand.
  56. int razmer = 0;
  57. cout << "Введите размер массива: " << endl;
  58. razmer = vvod_chisla();
  59. int *randomDigits = new int[razmer];
  60. cout << "Массив состоит из " << endl;
  61. for (int i = 0; i < razmer; i++)
  62. {
  63. randomDigits[i] = rand() % 11; //Вводм рандомные числа от 0 до Razmer (Длинна массива)
  64. cout << randomDigits[i] << " ";
  65. }
  66. do {
  67. int kol = 0;
  68. cout << endl << "Введите число от 0 до "<< razmer << endl;
  69. chislo = vvod_chisla();
  70.  
  71. for (int i = 0; i < razmer; i++) //Цикл для движения по массиву
  72. if (randomDigits[i] == chislo) //Сверяем, верно ли необходимое число
  73. {
  74. kol++; //При нахождении нужного числа, количество прибавляем на 1 (++)
  75. }
  76. }
  77.  
  78. cout << "Число " << chislo << " повторяется " << kol << " " << sklonenie(kol);
  79. cout << "Хотите продолжить?" << endl;
  80. do
  81. {
  82. cout << "Введите y или n ";
  83. otv = getchar();
  84. } while (!isalpha(otv) || !(otv == 'n' || otv == 'y'));
  85. } while (otv != 'n');
  86. }
  87. int main()
  88. {
  89. setlocale(LC_ALL, "Russian");
  90.  
  91. char otv;
  92. do {
  93. mainf();
  94. cout << endl << "Хотите повторить?" << endl;
  95. do
  96. {
  97. cout << "Введите y или n ";
  98. otv = getchar();
  99. } while (!isalpha(otv) || !(otv == 'n' || otv == 'y'));
  100. } while (otv != 'n');
  101.  
  102. system("pause");
  103. return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement