思路:
可以先设置一个数组用来存储中奖的号码,如当中奖号码为19,令f[19] = 1由于题目给出了数字最大不超过33,这样只需定义一个int a[33] = {0};即可,然后再利用一个二重for循环来进行输入,并且每一次输入就判断一次是否是中奖号码,是则sum++,当sum ==7时,这也就是特等奖,然后再建立一个数组进行保存所有奖项的次数,然后再打印即可
代码:
#include<iostream>
using namespace std;
#include<cstdio>
int main() {
int n, a[33] = { 0 }, number, bought, sum = 0, ans[10] = {0};
cin >> n;
for (int i = 0; i < 7; i++)
{
cin >> number;
a[number] = 1;
}
for (int i = 1; i <= n; i++)//买了n张彩票,进行n次循环
{
sum = 0;//新一轮将sum重置为0
for (int i = 1; i <= 7; i++)//输入买的彩票的七个数字
{
cin >> bought;
if (a[bought] == 1)//代表这个中奖了
{
//记录中奖的次数
sum++;
}
}
if (sum != 0)//至少中奖一个
ans[sum]++;
}
for (int i = 7; i >= 1; i--)
{
cout << ans[i] << " ";
}
return 0;
}