每张彩票上有六个数字,数字大小范围是1~33。
现在电视上已经公布了中奖号码。对于每张彩票,想要用机器快速判断该彩票是几等奖。
中奖规则:
中了一个数字,是六等奖,中了两个数字是五等奖。
其他依次类推,中了六个数字就是一等奖。
如果一个数字都没中,则输出“Sorry”(首字母大写)。
特别注意:彩票数字是允许重复选的。比如某张彩票数字为“1 2 3 1 2 3”,这是可以的,那如果中奖数字为“1 2 3 4 5 6”,那么这张彩票就中了六个数字。
输入格式
你的程序会先输入一行整数,包含六个数字,表示中奖号码。
接下来会输入一行,一个整数n,表示彩票数量。
再接下来n行,每行六个数字,表示彩票上的数字。
n≤1,000
输出格式
你的程序需要输入n行,对每张彩票,输出对应的奖项等第
重复数字也算中奖!那就逐个遍历彩票数字,跟中奖号码对比,数字在中奖号码中,就把猜对的数量+1,最后根据数量判断中奖等级
实现思路和具体代码如下,望采纳
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 35;
int win[N], ticket[N]; // win 数组存中奖号码,ticket 数组存彩票号码
int main()
{
for (int i = 0; i < 6; i ++ ) scanf("%d", &win[i]);
int n;
scanf("%d", &n);
while (n -- )
{
int cnt = 0; // cnt 用来计算当前彩票中奖数量
for (int i = 0; i < 6; i ++ ) scanf("%d", &ticket[i]);
for (int i = 0; i < 6; i ++ )
for (int j = 0; j < 6; j ++ )
if (ticket[i] == win[j]) cnt ++ ;
if (cnt == 0) puts("Sorry");
else printf("%d\n", 7 - cnt);
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!