中奖
输入格式:
第1行,输入一个整数n,表示彩民买了n组彩票.0<=n<=100。
第2行是开奖公布的号码,第1个到第6个是已按升序排列的红色中奖号码,第7个是蓝色中奖号码;
第3行到n+2行是彩民买的n组单式彩票,每行第1个到第6个是已按升序排列的红色中奖号码,第7个是蓝色号码。
输出格式:
按输入顺序输出已中奖的彩票号码及中奖等级,每组中奖号码占1行,中奖号码与中奖等级间有1个空格;若所有的彩票均未中奖,最后输出 “Not winning”。
输入样例1:
6
02 06 10 24 25 33 09
03 09 10 19 20 21 06
01 06 09 15 24 30 02
02 03 06 24 25 33 05
20 21 24 27 28 30 02
10 11 12 16 17 20 16
02 06 10 24 25 33 09
输出样例1:
02 03 06 24 25 33 05 四等奖
02 06 10 24 25 33 09 一等奖
输入样例2:
4
02 06 10 24 25 33 09
03 09 10 19 20 21 06
01 06 09 15 24 30 02
20 21 24 27 28 30 02
10 11 12 16 17 20 16
输出样例2:
Not winning
#include <stdio.h>
// 定义中奖等级
const char* prize[] = {"一等奖", "二等奖", "三等奖", "四等奖", "五等奖", "六等奖"};
// 比较两个数组的前6个元素和第7个元素
int compare(const int* a, const int* b) {
int red_match = 0, blue_match = (a[6] == b[6]) ? 1 : 0;
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
if (a[i] == b[j]) {
red_match++;
break;
}
}
}
// 根据红色号码和蓝色号码的匹配情况,返回对应的中奖等级索引
if (red_match == 6 && blue_match) return 0; // 一等奖
if (red_match == 6) return 1; // 二等奖
if (red_match == 5 && blue_match) return 2; // 三等奖
if (red_match == 5 || (red_match == 4 && blue_match)) return 3; // 四等奖
if ((red_match == 4 && !blue_match) || (red_match == 3 && blue_match)) return 4; // 五等奖
if (blue_match && red_match <= 1) return 5; // 六等奖
if (red_match == 2 && blue_match) return 5; // 六等奖
return -1; // 未中奖
}
int main() {
int n;
scanf("%d", &n);
int winning_numbers[7];
// 读取中奖号码
for (int i = 0; i < 7; i++) {
scanf("%d", &winning_numbers[i]);
}
int tickets[n][7]; // 存储所有彩票号码
// 读取所有彩票号码
for (int i = 0; i < n; i++) {
for (int j = 0; j < 7; j++) {
scanf("%d", &tickets[i][j]);
}
}
int has_winning_ticket = 0; // 标记是否有中奖的彩票
// 遍历所有彩票号码,判断是否中奖
for (int i = 0; i < n; i++) {
int result = compare(winning_numbers, tickets[i]); // 比较中奖号码和彩票号码
if (result != -1) { // 如果中奖
has_winning_ticket = 1; // 标记有中奖的彩票
// 输出中奖号码
for (int j = 0; j < 7; j++) {
printf("%02d ", tickets[i][j]);
}
printf("%s\n", prize[result]); // 输出中奖等级
}
}
// 如果没有中奖的彩票,输出"Not winning"
if (!has_winning_ticket) {
printf("Not winning\n");
}
return 0; // 程序结束
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律