Есть задача:
На различных мероприятиях команда стажировок регулярно разыгрывает призы в лотерею.
Организаторы выбирают 10 случайных различных чисел от 1 до 32. Каждому участнику выдается лотерейный билет, на котором записаны 6 различных чисел от 1 до 32. Билет считается выигрышным, если в нем есть не менее 3 выбранных организаторами числа.
Помогите Юле, напишите программу, которая будет сообщать, какие билеты выигрышные.
Формат ввода
В первой строке входных данных записаны 10 различных целых чисел ai (1 ≤ ai ≤ 32) — выбранные организаторами числа.
Во второй строке записано одно целое число n (1 ≤ n ≤ 1000) — количество лотерейных билетов, выданных на мероприятии.
В каждой из n последующих строк записаны 6 различных целых чисел bj (1 ≤ bj ≤ 32) — числа, записанные на очередном лотерейном билета.
Формат вывода
Выведите n строк. Для каждого лотерейного билета в порядке следования во входных данных выведите строку Lucky, если билет выигрышный, иначе выведите Unlucky.
И вот мой код:
#include <iostream>
using namespace std;
int main()
{
int lucky [10], n, copy1, copy2 = 0;
for (int i = 0; i < 10; i ++)
{
cin >> lucky [i];
}
cin >> n;
int res [n];
for (int i = 0; i < n; i ++)
{
for (int j = 0; j < 6; i ++)
{
cin >> copy1;
for (int k = 0; k < 10; k ++)
{
if (copy1 == lucky [k]) copy2 ++;
}
}
if (copy2 >= 3) res [i] = 1;
else res [i] = 0;
copy2 = 0;
}
for (int i = 0; i < n; i ++)
{
if (res [i] == 1) cout << "Lucky\n";
else cout << "Unlucky\n";
}
}
Пишет - превышено время исполнения, но ошибку найти так и не могу. Набирал с телефона, за формат кода прошу простить.
Я бы вообще делал так:
int main ()
{
int n;
int lucky[33] = { 0 };
for(int i = 0; i < 10; ++i)
{
cin >> n;
lucky[n] = 1;
}
cin >> n;
for(int i = 0; i < n; ++i)
{
int sum = 0;
for (int j = 0; j < 6; ++j)
{
int m;
cin >> m;
sum += lucky[m];
}
cout << ((sum >= 3) ? "Lucky\n" : "Unlucky\n");
}
}
И еще - учтите, что
cin >> n;
int res [n];
такое стандарт С++ не разрешает!
Попробуйте как-нибудь так. Ваш вариант не компилируется.
#include <iostream>
using namespace std;
const int numbers_in_one_ticket = 6;
const int lucky_numbers = 10;
int main() {
int lucky[lucky_numbers], number_of_tickets = 0;
cout << "Enter 10 lucky numbers\n";
for (int i = 0; i < lucky_numbers; i++)
{
cin >> lucky[i];
}
cout << "\nEnter number of tickets\n";
cin >> number_of_tickets;
int **tickets = new int * [number_of_tickets];
for (int i = 0; i < number_of_tickets; i++)
{
tickets[i] = new int[numbers_in_one_ticket];
}
srand(NULL);
for (int j = 0; j < number_of_tickets; j++)
{
int numbers_in_common = 0;
for (int i = 0; i < numbers_in_one_ticket; i++)
{
tickets[j][i] = rand() % 32;
for (int i = 0; i < lucky_numbers; i++)
{
if (lucky[i] == tickets[j][i])
numbers_in_common++;
}
}
if (numbers_in_common >= 3)
{
for (int i = 0; i < numbers_in_one_ticket; i++)
{
cout << tickets[j][i] << " ";
}
cout << "Lucky\n";
}
else
{
for (int i = 0; i < numbers_in_one_ticket; i++)
{
cout << tickets[j][i] << " ";
}
cout << "Unlucky\n";
}
}
delete[] tickets;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Возникла та же проблема, что и в этой теме 2014 года - Регулярные выражения и кириллица Собстна, вопрос: за 4 года в плюсах не появился способ...
VStudio не находит библиотеки, такие как conioh, time
Добрый деньИмеется нативный винапи поток, создаваемый функцией CreateThread(