Программирование на С++ см внутри.
Программирование на С++ см внутри.
Вот пример реализации функции "лотерея" и цикла в функции main:
#include <iostream>
#include <cstdlib>
#include <ctime>
// Функция "лотерея"
int lottery(int& tickets) {
int random = rand() % 100 + 1; // Генерируем случайное число от 1 до 100
if (random <= 1) { // Вероятность выиграть джекпот 1%
tickets += 10; // Добавляем 10 билетов
return 100; // Возвращаем сумму выигрыша 100
} else if (random <= 50) { // Вероятность выиграть рандомную сумму 49%
int amount = rand() % 100 + 1; // Генерируем случайное число от 1 до 100
return amount; // Возвращаем сумму выигрыша
} else { // Вероятность ничего не выиграть равна 50%
return 0; // Возвращаем сумму выигрыша 0
}
}
int main() {
srand(time(0)); // Инициализируем генератор случайных чисел
int tickets = 10; // Изначально 10 билетов
int totalAmount = 0; // Общая сумма выигрыша
while (tickets > 0) {
int amount = lottery(tickets); // Вызываем функцию "лотерея" и получаем сумму выигрыша
totalAmount += amount; // Прибавляем сумму выигрыша к общей сумме
std::cout << "Сумма выигрыша: " << amount << std::endl;
std::cout << "Общая сумма: " << totalAmount << std::endl;
tickets--; // Уменьшаем количество билетов
}
return 0;
}
В этом примере используется функция rand()
для генерации случайных чисел. Чтобы получить разные случайные числа при каждом запуске программы, мы инициализируем генератор случайных чисел с помощью функции srand(time(0))
, используя текущее время в качестве семени.
Функция "лотерея" принимает параметр "билет" по ссылке, чтобы мы могли изменить его значение внутри функции. Внутри функции мы генерируем случайное число от 1 до 100 и на основе этого числа определяем вероятность выигрыша. Если выигрыш произошел, мы изменяем значение "билет" и возвращаем сумму выигрыша.
В функции main мы создаем переменные "билеты" и "общая сумма выигрыша". Затем мы запускаем цикл, который вызывает функцию "лотерея" и добавляет выигрыш к общей сумме, пока не закончатся билеты. В каждой итерации цикла мы выводим сумму выигрыша и общую сумму на экран.