解题思路:
枚举类型,switch分支,循环输入

注意事项:

switch的break不要漏掉

参考代码:

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <vector>
#include <algorithm>
#include <stdio.h>
#define N 7

using namespace std;

enum Prize
{ NON = 0, SIX = 1, FIVE, FOUR, THREE, TWO, ONE, SPEC };

vector<int> winLott;//中奖彩票
int lott[N];        //当前彩票
int winCount[N];    //中奖彩票数量

Prize checkLott()
{
	int samNum = 0;
	for (int i = 0; i < N; i++)
		samNum += count(winLott.begin(), winLott.end(), lott[i]);
	Prize p = (Prize)samNum;
	return p;
}

int main(int argc, char** argv)
{
	int lotteryCount = 0;
	cin >> lotteryCount;
	
	//输入中奖彩票
	for (int i = 0; i < N; i++)
	{
		int temp = 0;
		cin >> temp;
		winLott.push_back(temp);
	}

	//输入并处理彩票
	for (int i = 0; i < lotteryCount; i++)
	{
		//输入一张彩票
		for (int j = 0; j < N; j++)
			cin >> lott[j];
		switch (checkLott())
		{
		case SPEC:
			winCount[0] += 1;
			break;
		case ONE:
			winCount[1] += 1;
			break;
		case TWO:
			winCount[2] += 1;
			break;
		case THREE:
			winCount[3] += 1;
			break;
		case FOUR:
			winCount[4] += 1;
			break;
		case FIVE:
			winCount[5] += 1;
			break;
		case SIX:
			winCount[6] += 1;
			break;
		default:
			break;	
		}
		memset(lott, 0x00, sizeof(lott));
	}

	for (int i = 0; i < N; i++)
		cout << winCount[i] << " ";
	cout << endl;
		
 	return 0;
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论