上题目
题目分析:
先输入小明买彩票数,再用a数组把中奖码标为一,再输入小明号码,如果a[小明的彩票号]=1,就多对一个号码
方法:
用桶来放号码,并进行比较
容易踩的坑:
1.数组初始化
没有初始化是这样子的
2.注意计数器在每次循环完后重新归为零,再进行下次计数,可以直接把计数器(t)在循环中定义并赋值,也可以在上面定义完之后,下面不要忘了归零 我在这里卡了很久
代码实现:
#include<stdio.h>
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;
}