P2550 [AHOI2001]彩票摇奖 c语言

上题目P2550 [AHOI2001]彩票摇奖 c语言_第1张图片
P2550 [AHOI2001]彩票摇奖 c语言_第2张图片
题目分析:
先输入小明买彩票数,再用a数组把中奖码标为一,再输入小明号码,如果a[小明的彩票号]=1,就多对一个号码

方法:
用桶来放号码,并进行比较

容易踩的坑:
1.数组初始化
没有初始化是这样子的
在这里插入图片描述
2.注意计数器在每次循环完后重新归为零,再进行下次计数,可以直接把计数器(t)在循环中定义并赋值,也可以在上面定义完之后,下面不要忘了归零 我在这里卡了很久

代码实现:

#include
int main()
{
	int a[34]={0},c[8]={0};//初始化也很重要
	int n,i,j,t=0,p,q;     //n为彩票张数,t是计数器(上面一直说的)
	scanf("%d",&n); //输入彩票张数
	for(i=1;i<=7;i++)
	{
		scanf("%d",&p);//中奖号码 
		a[p]=1;//出现过的号码当作下标,把此下标的值赋值为1
	}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=7;j++)
		{
			scanf("%d",&q);//小明的号码 
			if(a[q]==1)   
				t++;
		}
		c[7-t+1]++;
		t=0;  //t的值变为0 重点!!!
	}
	for(i=1;i<=7;i++)
	{
		printf("%d ",c[i]);
	}
	return 0; 
 } 

你可能感兴趣的:(洛谷--入门级)