c語言彩票號碼生成器
阿新 • • 發佈:2018-12-20
一、背景和思路 彩票現在越來越普及,種類也越來越多,很多人都願意去花小小的代價去賭那一點點的可能性,但我們學過概率論,知道那微小不可能事件,這次我們的實驗就是做出一個彩票生成器。 對於該問題,設計 C 語言程式時,第一種選擇方法,選擇七個數,然後從規定好的m(1~35)中用隨機數函式選出七個隨機數,然後兩者進行雙重迴圈比較,得出兩個陣列之間相等數的個數,然後輸出做好的開獎函式;第二種方法:輸入一個注數,像第一種方法一樣,從m中得出隨機數,不過這次用迴圈規定輸出隨機陣列的次數(中間用延時函式做出兩秒延遲);第三種方法:膽拖,輸入的數字放到一個單獨陣列,然後隨機函式輸出除去單獨陣列之外的35個數的隨機陣列,組成七個數的膽拖陣列。 二、程式流程圖
#include<stdio.h> #include<stdlib.h> #include<time.h> #define m 35 #define n 7 void delay(int time)//延時函式 delay { for(int i=0;i<time;i++) for(int j=0;j<time;j++); } void buycp(int mycp[],int len)//買彩票 { int i; for(i=0;i<len;i++) scanf("%d",&mycp[i]); } void suijishu(int mycp[],int len,int M)//隨機數函式 { int i,j; //M=m+1; srand(time(NULL)); for(i=0;i<len;i++) { mycp[i]=rand()%M; for(j=0;j<i;j++) { if(mycp[i]==mycp[j]) { j=-1; mycp[i]=rand()%M; } } printf("%d ",mycp[i]); } } int duijiang(int mycp[],int mylen, int kj[],int len)//比較號碼 { int i,j; int k=0; for(i=0;i<mylen;i++) { for(j=0;j<len;j++) { if(mycp[i]==kj[j]) { k=k+1; } } } return k; } void fajiang(int k)//發獎 { if(k==0) printf("很遺憾,您沒有中獎\n"); if(k==1) printf("您選中一個號碼,中獎1元\n"); if(k==2) printf("您選中兩個號碼,中獎5元\n"); if(k==3) printf("您選中三個號碼,中獎10元\n"); if(k==4) printf("您選中四個號碼,中獎100元\n"); if(k==5) printf("您選中五個號碼,中獎1000元\n"); if(k==6) printf("您選中六個號碼,中獎10000元\n"); if(k==7) printf("您選中七個號碼,中獎100000元\n"); } int main() { int mycp[7];//買的彩票 int kjcp[7];//開獎 int xnum[7];//自選 數 int jnum[7];//機選 數 int h,n2,n3,i,k,j; printf("請選擇買彩票的方式(1:自選2:機選3:膽拖): \n"); scanf("%d",&h); if(h==1) {printf("請輸入選擇的七個數,空格鍵分開,回車結束(1~35):\n"); buycp(mycp,7); printf("請稍後......\n"); delay(10000); printf("本期開獎號碼為:"); suijishu(kjcp,7,m+1); printf("\n"); printf("您所購買彩票與開獎彩票號碼相同的個數為:"); k=duijiang(mycp,7,kjcp,7); printf("%d",k); printf("\n"); fajiang(k); } if(h==2) { printf("輸入需要買的樁數:"); scanf("%d",&n2); for(i=0;i<n2;i++) { suijishu(kjcp,7,m+1); printf("\n"); delay(20000); } } if(h==3) { printf("輸入你想選擇的膽拖數:"); scanf("%d",&n3); printf("輸入你選擇的膽拖,空格分開,回車結束:"); buycp(mycp,n3); for(i=0;i<n3;i++) { printf("%d ",mycp[i]); } //suijishu(kjcp,7-n3,m+1); srand(time(NULL)); for(i=0;i<7-n3;i++) { kjcp[i]=rand()%m+1; for(j=0;j<i;j++) { if(kjcp[i]==kjcp[j]||mycp[j]==kjcp[i]) { j=-1; kjcp[i]=rand()%m+1; } } printf("%d ",kjcp[i]); } } return 0; }
實驗結果如下: 隨便寫寫玩玩的小程式,肯定有很多不足之處,希望有看到的大神可以指出。感謝