0
点赞
收藏
分享

微信扫一扫

彩票摇奖之你怎么看

Brose 2022-03-11 阅读 84

为了丰富人民群众的生活、支持某些社会公益事业,北塔市设置了一项彩票。该彩票的规则是:

  1. 每张彩票上印有 7 个各不相同的号码,且这些号码的取值范围为 1∼33。
  2. 每次在兑奖前都会公布一个由七个各不相同的号码构成的中奖号码。
  3. 共设置 7 个奖项,特等奖和一等奖至六等奖。

兑奖规则如下:

  • 特等奖:要求彩票上7个号码都出现在中奖号码中。
  • 一等奖:要求彩票上有6个号码出现在中奖号码中。
  • 二等奖:要求彩票上有5个号码出现在中奖号码中。
  • 三等奖:要求彩票上有4个号码出现在中奖号码中。
  • 四等奖:要求彩票上有3个号码出现在中奖号码中。
  • 五等奖:要求彩票上有2个号码出现在中奖号码中。
  • 六等奖:要求彩票上有1个号码出现在中奖号码中。

注:兑奖时并不考虑彩票上的号码和中奖号码中的各个号码出现的位置。例如,中奖号码为 23 31 1 14 19 17 18,则彩票 12 8 9 23 1 16 7由于其中有两个号码(23 和 1)出现在中奖号码中,所以该彩票中了五等奖。

现已知中奖号码和小明买的若干张彩票的号码,请你写一个程序帮助小明判断他买的彩票的中奖情况。

 对于这题的分析,首先我凭借自己的想法来看的。

首先我们得找个一维数组把中奖号码给录入,然后再定义一个二维数组,输入我们的彩票号码。我们需要做的是,在二维数组中一个个的遍历找到与一维数组号码相同的。这个时候我们再定义一个数组,来判断有几个与中奖号码相同的,输出对应的就是几,这样就满足了我们拿到了一个数组,记录各个奖的数量。再转换成正确的输出格式。现在我们来看看代码部分。

#include<stdio.h>
int main(){
//定义彩票个数n//
    int n,i,j,k;
//中奖的号码数组a,输出的格式数组c//
    int a[7],c[7]={0};
//s数组表示彩票号码与中奖号码相同的个数//
    int s[1000]={0};
    int b[1000][7];
    scanf("%d",&n);
//录入中奖的号码//
    for(i=0;i<7;i++){
        scanf("%d",&a[i]);
    }
//录入彩票的号码//
    for(i=0;i<n;i++){
        for(j=0;j<7;j++){
            scanf("%d",&b[i][j]);
        }
    }
//拿中奖号码一个个元素与抽取的号码元素一个个对比,中奖号码的第几位就输出有几位与中奖号码相同//
    for(i=0;i<n;i++){
        for(j=0;j<7;j++){
            for(k=0;k<7;k++){
                if(a[j]==b[i][k]){
                    s[i]+=1;
                    }
            }
           
        }
        
    }
//为了输出的格式正确,将与中奖号码相同的格式,转化为各奖项的数量//
    
    for(i=0;i<7;i++){
        for(j=0;j<n;j++){
            if(s[j]==7-i){
                c[i]++;
            }
        }
    }
    for(i=0;i<7;i++){
            printf("%d ",c[i]);
           
        }
    return 0;
}
举报

相关推荐

0 条评论