Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // lab4.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <cstdlib>
- #include <ctime> // содержит time()
- #include <string>
- //Вариант 16
- //Написать программу, которая вычисляет, сколько раз введенное с клавиатуры
- //число встречается в массиве.
- using namespace std;
- int vvod_chisla() {
- int number;
- while (true)
- {
- cout << "Введите число " << endl;
- cin >> number;
- if (cin.good() && number >= 0)
- {
- cin.ignore(10, '\n');
- break;
- }
- cin.clear();
- cout << "Неправильный ввод " << endl;
- cin.ignore(10, '\n');
- }
- return number;
- }
- string sklonenie(int i) {
- switch (i)
- {
- case 2:
- case 3:
- case 4:
- return "раза";
- break;
- default:
- return "раз";
- break;
- }
- }
- void mainf() {
- int chislo = 0;
- char otv; // ответ
- srand(time(NULL)); //Создаем рандомное число, иначе каждый раз числа будут повторяться
- //time(NULL) получить текущую дату, выраженную в секундах
- //Функция srand выполняет инициализацию генератора случайных чисел rand.
- int razmer = 0;
- cout << "Введите размер массива: " << endl;
- razmer = vvod_chisla();
- int *randomDigits = new int[razmer];
- cout << "Массив состоит из " << endl;
- for (int i = 0; i < razmer; i++)
- {
- randomDigits[i] = rand() % 11; //Вводм рандомные числа от 0 до Razmer (Длинна массива)
- cout << randomDigits[i] << " ";
- }
- do {
- int kol = 0;
- cout << endl << "Введите число от 0 до "<< razmer << endl;
- chislo = vvod_chisla();
- for (int i = 0; i < razmer; i++) //Цикл для движения по массиву
- if (randomDigits[i] == chislo) //Сверяем, верно ли необходимое число
- {
- kol++; //При нахождении нужного числа, количество прибавляем на 1 (++)
- }
- }
- cout << "Число " << chislo << " повторяется " << kol << " " << sklonenie(kol);
- cout << "Хотите продолжить?" << endl;
- do
- {
- cout << "Введите y или n ";
- otv = getchar();
- } while (!isalpha(otv) || !(otv == 'n' || otv == 'y'));
- } while (otv != 'n');
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- char otv;
- do {
- mainf();
- cout << endl << "Хотите повторить?" << endl;
- do
- {
- cout << "Введите y или n ";
- otv = getchar();
- } while (!isalpha(otv) || !(otv == 'n' || otv == 'y'));
- } while (otv != 'n');
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement