zoukankan      html  css  js  c++  java
  • 兑奖

    View Code
      1 #include<time.h> 
      2 #include<stdlib.h> 
      3 #include<stdio.h>
      4 
      5 int cmp(const void *a,const void *b)
      6 {
      7     return *(int *)a-*(int *)b;
      8 }
      9 
     10 void SJS(int p[])//主办方产生随机数
     11 {
     12     int i,j,k,c=0; 
     13     srand((int)time(0));
     14     k=1+(int)(22.0*rand()/(RAND_MAX+1.0)); 
     15     for(i=0;i<6;) 
     16     {
     17         k=1+(int)(22.0*rand()/(RAND_MAX+1.0)); 
     18         for(j=0;j<i;j++)
     19         {
     20             if(k==p[j])
     21                 break;
     22         }
     23         if(j>=i)
     24         {
     25             p[i]=k;
     26             i++;
     27         }
     28     }     
     29 }
     30 
     31 void Select(int f[])//抽奖 5个数
     32 {
     33     printf("请从1~22之间任意选取5个不同的整数作为投注号码:\n");
     34     int i=0,j,k=0;
     35     for(i=0;i<5;i++)
     36         scanf("%d",&f[i]);
     37     qsort(f,5,sizeof(f[0]),cmp);
     38     while(!k)
     39     {
     40         for(i=0;i<5;i++)
     41             if(f[i]<1||f[i]>22)
     42             { 
     43                 k=0; 
     44                 break;
     45             }
     46             if(i>=5)  k=1;
     47             if(k)
     48             {
     49                 for(j=1;j<5;j++)
     50                     if(f[j]==f[j-1])
     51                     {
     52                         k=0;
     53                         break;
     54                     }
     55                     if(j==5) k=1;
     56             }
     57             
     58             if(k==0)
     59             {
     60                 printf("输入错误!请从1~22之间任意选取5个不同的整数作为投注号码:\n");
     61                 for(i=0;i<5;i++)
     62                     scanf("%d",&f[i]);
     63                 qsort(f,5,sizeof(f[0]),cmp);
     64             }
     65     }
     66 }
     67 
     68 int check(int p[],int f[])
     69 {
     70     int i,j,count=0,k=0;//k标记是否抽到与 p[5] 相等的数
     71     
     72     for(i=0;i<5;i++)//对比
     73     {
     74         for(j=0;j<5;j++)
     75             if(f[i]==p[j])
     76             {count++;break;}
     77     }
     78     for(i=0;i<5;i++)
     79         if(f[i]==p[5])
     80         {k=1;break;}
     81         
     82         if(count==5)//头等奖
     83             return 1;
     84         else if(count==4 && k)//二等奖
     85             return 2;
     86         else if(count==4 && !k)//三等奖
     87             return 3;
     88         else if(count==3)//四等奖
     89             return 4;
     90         else if(count==2)//五等奖
     91             return 5;
     92         else
     93             return 0;
     94 }
     95 
     96 void win(int k)
     97 {
     98     if(k==1)
     99         printf("恭喜你!!!中了头等大奖!\n");
    100     else if(k==2)
    101         printf("恭喜你!!!中了二等大奖!\n");
    102     else if(k==3)
    103         printf("恭喜你!!!中了三等大奖!\n");
    104     else if(k==4)
    105         printf("恭喜你!!!中了四等大奖!\n");
    106     else if(k==5)
    107         printf("恭喜你!!!中了五等大奖!\n");
    108     else
    109         printf("本次未中奖,谢谢参与!祝你下次好运!\n");
    110 }
    111 void print()
    112 {
    113     printf("------------操作------------\n");
    114     printf("|抽奖,            请选择1 |\n");
    115     printf("|大奖设置,        请选择2 |\n");
    116     printf("|退出本期抽奖,    请选择0 |\n");
    117     printf("----------------------------\n");
    118     
    119 }
    120 
    121 int main() 
    122 { 
    123     int f[5],i,k,h,Case=1,y;
    124     int P[6];
    125     
    126     printf("                          ********************************\n");
    127     printf("                          *         大奖等你拿!!!        *\n");
    128     printf("                          ********************************\n");
    129     printf("\n\n");
    130     while(1)
    131     {
    132         printf("*************************************第%d期抽奖**********************************\n",Case);
    133         printf("选择1    开始\n");
    134         printf("选择0    退出\n");
    135         printf("选择:");
    136         scanf("%d",&y);
    137         if(y==0) break;
    138         else if(y==1)
    139         {
    140             SJS(P);//主办方的随机数
    141             Case++;
    142             while(1)
    143             {
    144                 print();
    145                 printf("请选择:");
    146                 scanf("%d",&h);
    147                 if(h==0)
    148                 {
    149                     printf("本期抽奖结束!!!\n");
    150                     printf("大奖号为:");
    151                     for(i=0;i<5;i++)
    152                         printf("%d  ",P[i]);
    153                     printf("特别号为:");
    154                     printf("%d\n",P[5]);
    155                     break;
    156                 }
    157                 else if(h==1)
    158                 {
    159                     
    160                     Select(f);//抽奖
    161                     k=check(P,f);
    162                     win(k);
    163                 }
    164                 else if(h==2)
    165                 {
    166                     printf("---------兑--------奖----------方-----------式----------\n");
    167                     printf("|头等奖:5个号码与5个暗码完全相同                        |\n");
    168                     printf("|二等奖:4个号码与4个暗码完全相同,另一个号码与特别号相同|\n");
    169                     printf("|三等奖:4个号码与4个暗码完全相同,另一个号码与特别号不同|\n");
    170                     printf("|四等奖:3个号码与3个暗码完全相同                        |\n");
    171                     printf("|五等奖:2个号码与2个暗码完全相同                        |\n");
    172                     printf("|大奖号码将在本期结束公布                               |\n");
    173                     printf("---------------------------------------------------------\n");
    174                 }
    175             }
    176         }
    177     }
    178     printf("结束,谢谢参与!!!\n");
    179     return 0;    
    180 } 
  • 相关阅读:
    例题
    经典模型
    定义
    洛谷p2564生日礼物andp2627修建草坪
    转自大佬的线段树
    c++String类
    随机数
    JVM知识点总结
    task5 模型融合 打卡
    task4 建模与调参 打卡
  • 原文地址:https://www.cnblogs.com/zlyblog/p/2554613.html
Copyright © 2011-2022 走看看