栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言 生成五注彩票

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言 生成五注彩票

1、题目要求,5个[1,21]区间的随机整数组成一注彩票, 5个数相互不重复且从大到小排序,生成五注彩票。

2、效果如下:

请耐心等待...
第1注:03  07  10  19  21
第2注:02  05  07  09  13
第3注:01  05  06  13  16
第4注:02  12  15  16  17
第5注:06  12  14  18  21

3、实现:首先生成五个[1,21]区间的随机整数,并把他们放到数组里面,然后判断这个数组中的元素是否重复,有重复的话重新生成五个[1,21]区间的随机整数,并把他们放到数组里面然后继续判断直到没有重复出现,最后进行升序排序并进行打印,以此方法打印五次。

4、函数

生成五个[1,21]区间的随机整数,并把他们放到数组里面。

srand(time(NULL));是以当前时间为种子,产生任意数。其中,time(NULL)用来获取当前时间。

因此每次获得随机数时需要延时一段时间,否则产生的五个随机数将一摸一样。

void get_five_ran_num(int *arr) {
	int i;
	srand(time(NULL));	//确定随机初值 
	for(i = 0;i < 5;i++) {
		Sleep(200);			//延时0.2秒	
		arr[i] = rand()%(21-1+1)+1;
	}
}

判断这个数组中的元素是否重复,重复返回-1,不重复返回0

int find_same_element(int *arr,int length) {
	int i,j,k;
    for(i = 0;i < length-1;i++) {			     //arr[0]————arr[length-1] 
        for(j = i + 1;j < length;j++) {	
            if(arr[i] == arr[j]) {		//数字重复
        		return -1;                     
			}
        }
	} 
	return 0;
}

打印一注彩票。判断这个数组中的元素是否重复这个函数返回-1的话再次重新生成五个随机整数,然后继续判断,直到不重复返回0开始打印。

void printf_one_lottly(int *arr,int q) {
	int i;
	do get_five_ran_num(arr);				
	while(find_same_element(arr,5));    //只要返回-1就重新生成五个随机整数返回0就进行打印
	sort(arr,5);
	printf("第%d注:",q);
    for(i=0;i<5;i++) {
		printf("%02d  ",arr[i]);
	}
	printf("n");
}

最后进行升序排序(简单选择法)

第一次:i = 0,j = 1,将j从1到最后遍历一遍并分别与arr[0]进行比较,如果arr[0]大就向后交换,直到将最小的排到arr[0]。

第二次:i = 1,j = 2,将j从2到最后遍历一遍并分别与arr[1]进行比较,如果arr[1]大就向后交换,直到将后面最小的排到arr[1]。

以此类推......

得到从小到大排列的数组。

void sort(int *arr,int length) {
	int i,j,temp;
	for(i=0;i 

5、全部代码如下

#include  
#include 
#include 

void get_five_ran_num(int *arr);
int find_same_element(int *arr,int length);
void sort(int *arr,int length);
void printf_one_lottly(int *arr,int q);

int main() {
	int arr[5] = {0};
	int q = 1;
	printf("请耐心等待...n");
	while(q<6) {			
		printf_one_lottly(arr,q);		
		q++;
	}
	return 0;
}

void printf_one_lottly(int *arr,int q) {
	int i;
	do get_five_ran_num(arr);				
	while(find_same_element(arr,5));	
	sort(arr,5);
	printf("第%d注:",q);
    for(i=0;i<5;i++) {
		printf("%02d  ",arr[i]);
	}
	printf("n");
}


void get_five_ran_num(int *arr) {
	int i;
	srand(time(NULL));	//确定随机初值 
	for(i = 0;i < 5;i++) {
		Sleep(200);			//延时0.2秒	
		arr[i] = rand()%(21-1+1)+1;
	}
}

int find_same_element(int *arr,int length) {
	int i,j,k;
    for(i = 0;i < length-1;i++) {			     //arr[0]————arr[length-1] 
        for(j = i + 1;j < length;j++) {	
            if(arr[i] == arr[j]) {		//数字重复
        		return -1;                     
			}
        }
	} 
	return 0;
}
//升序排序 
void sort(int *arr,int length) {
	int i,j,temp;
	for(i=0;i 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/957770.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号