生成一注双色球-c语言
来源:互联网 发布:智能手环要下什么软件 编辑:程序博客网 时间:2024/05/25 05:37
1、最开始的程序
#include<stdio.h>#include<stdlib.h>int produce_red();//每次产生一个红号int produce_blue();//生成蓝号void sort(int *a,int len);/*******************************************************该程序用来生成一注双色球*红号六个是不能重复的,首先生成第一个红号,然后一次生成*后面的红号,生成时依次与前面的比较,若与其中的一个相等*则换一个随机的号,再一次比较,设一个计数器count,若都不*相等,则count=i;注意count清零******************************************************/int main(){ int i,j; int count=0; int tmp; int ticket[7]={0}; srand((int)time(0)); //设随机数种子,时间单位为秒,一秒内出的随机数相等 for(i=0;i<6;i++) { if(i==0) ticket[0]=produce_red(); //ticket[6]=produce_red(); else { //j=i; flag: tmp=produce_red(); count=0; for(j=0;j<i;j++) if(ticket[j]==tmp) goto flag; else count++; if(count==i) { ticket[i]=tmp; } count=0; } } ticket[6]=produce_blue(); sort(ticket,6); for(i=0;i<6;i++) { printf("%d ",ticket[i]); } printf("| %d",ticket[6]); printf("\n");}int produce_red()//一次产生一个红球{ int j; j=1+(int)(33.0*rand()/(RAND_MAX+1.0)); return j;}int produce_blue(){ int j; //srand((int)time(0)); j=1+(int)(16.0*rand()/(RAND_MAX+1.0)); return j;}void sort(int *a,int len){ int i=0; int j; int t; for(i=0;i<len;i++) { for(j=0;j<len-i-1;j++) { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } }}
2、改进后的算法
#include<stdio.h>#include<stdlib.h>int produce_red();int produce_blue();void sort(int *a,int len);/************************************************彩票的改进程序,用一个数组保存所有的数字,每当*生成一个号时,让相应的数组中的数字置零,以保证*不会重复***********************************************/int main(){ int i,j,count=0; int tmp; int res[7];//保存最后生成的一注彩票 int num[33]={1,2,3,4,5,6,7,\ 8,9,10,11,12,13,\ 14,15,16,17,18,\ 19,20,21,22,23,\ 24,25,26,27,28,\ 29,30,31,32,33}; srand((int)time(0)); while(count!=6) { tmp=produce_red(); if(num[tmp-1]!=0) { res[count]=tmp; count++; num[tmp-1]=0; } else continue; } res[6]=produce_blue(); sort(res,6); for(i=0;i<6;i++) printf("%d ",res[i]); printf("| %d\n",res[6]);}int produce_red()//一次产生一个红球{ int j; j=1+(int)(33.0*rand()/(RAND_MAX+1.0)); return j;}int produce_blue(){ int j; //srand((int)time(0)); j=1+(int)(16.0*rand()/(RAND_MAX+1.0)); return j;}void sort(int *a,int len)//冒泡排序{ int i=0; int j; int t; for(i=0;i<len;i++) { for(j=0;j<len-i-1;j++) { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } }}
0 0
- 生成一注双色球-c语言
- C语言--模拟生成一注双色球结果
- C语言生成随机数
- C语言生成随机数
- C语言生成菱形
- C 语言生成工程
- C语言生成随机数
- C语言生成随机数
- C语言生成随机数
- C 语言生成BMP 文件
- C语言生成TXT文件
- c语言生成动态库
- C语言--生成正态分布随机数
- C语言--扑克牌生成程序
- C 语言生成生日字典
- c语言生成动态库
- c语言生成随机数数组
- C语言生成SHA1校验码
- IT技术名词详解
- UltraEdit 使用
- 暑期实习4月份笔试试题解答-Android 工程师
- Java设计模式之工厂模式
- Android 使用网页开发软件界面
- 生成一注双色球-c语言
- 四种android的Button监听
- Android开发-01-不同分辨率的设备文字大小适配
- wikioi1285——by rfy
- 利用flandmark进行face alignment
- Win Server 2008中开启Areo特效
- ListView异步加载优化
- Windows 7上可以上QQ,无法访问网页的DNS解析的解决
- malloc和new有什么区别