C语言程序设计项目8

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
srand(time(0)); /*初始化随机数生成器种子 */ for(i=1;i<=7;i++)/* 利用循环生成7个中奖号码*/ { win_num[i]=rand()%29+1; /* 将生成的7个1~29之间的任意整数存放在数组元素win_num[1]~ win_num[7]中 */ }
任务二 随机生成一组中奖号码
******\n\n");
任务二 随机生成一组中奖号码
随机生成1~29之间的任意整数,使用公式:“rand()%29+1”。 使用“srand(time(0));”语句初始化随机数生成器种子,并在 程序开始部分加载相应的头函数。 #include<time.h> #include<stdlib.h> 随机产生7个1~29之间的整数:(可能会有重复)
项目八 指针──模拟彩票开奖
任务一 任务二 任务三 任务四 任务五 设计开始界面,输入自选号码 随机生成一组中奖号码 统计并输出彩票获奖结果 了解指针 使用函数,简化程序
任务一设计开始界面,输入自选号码
开始界面
#include<stdio.h> main() {int your_num[8]; int win_num[8]; int i; clrscr(); printf("****** Welcome to the lottery simulator system! printf("\tPlease input your numbers:\n"); for(i=1;i<=7;i++) { printf("No.%d is :",i); scanf("%d",&your_num[i]); printf("\n"); } int min,tem; for(i=1;i<7;i++) {min=i; for(j=i+1;j<8;j++) if(your_num[min]>your_num[j]) min=j; tem=your_num[i]; your_num[i]=your_num[min]; your_num[min]=tem; } printf("Your numbers are:\n"); for(i=1;i<=7;i++) printf("\t%d",your_num[i]); }
随机产生7个不重复的1~29之间的整数(第2种方法)
for(i=1;i<30;i++) { win1[i]=i; } srand(time(0)); /*初始化随机数生成器*/ for(i=0;i<1000;i++) /*将数组win1[]中任意两个元素的操作执行1000次*/ { a=rand()%28+1; /*随机生成第1个数组元素下标*/ b=rand()%28+1; /*随机生成第2个数组元素下标*/ repeat=win1[a]; win1[a]=win1[b]; win1[b]=repeat; /*随机地将两个元素交换*/ } /* 将数组win1[]的1-7个元素作为中奖号码*/ for(i=1;i<=7;i++) { win_num[i]=win1[i]; }
任务三 统计并输出彩票获奖结果
统计彩票的获奖结果的思路
1. 统计有几个数字中奖:将用户自选的号码与系统自动生成的号 码逐一比较,每找到一个相等的就进行计数;将统计结果存放在 变量count中。 2. 判断是否有数字与特别号码相同,如果有相同的则 “special=1”,否则“special=0”。 3. 根据中奖数字个数count和是否有特别号码special,得到并输 出中奖结果。
C语言程序设计
项目八 指针──模拟彩票开奖
学习目标
熟悉和掌握数组的定义和使用。 熟悉常用的算法。 掌握使用随机函数生成一组不重复的随机
数的方法。 了解指针的概念。
项目八 指针──模拟彩Baidu Nhomakorabea开奖
本项目编写一个能够模拟29选7彩票开 奖的程序
程序运行后,请用户输入自己选择的7个号码, 随机生成7个正选号码和一个特别号码, 输出用户选择号码和中奖号码 判断用户是否中奖,输出中奖情况。
生成一组不重复的中奖号码
方法一、使用嵌套的循环程序。 1. 定义“i=1”。 2. 生成第1个随机数。 3. 如果“i<=7”成立,执行第4步;否则,执行第7步。 4. 生成第“i+1”个随机数。 5. 将第“i+1”个随机数与第1个到第i个随机数进行比较,如果第 “i+1”个随机数与某个之前生成的随机数相等,执行第6步,如果 第“i+1”个随机数与之前生成的随机数都不等,则执行第7步。 6. 重新生成第“i+1”个随机数。 7. 定义“i=i+1”,生成下一个随机数,执行第4步。 8. 程序结束。
任务二 随机生成一组中奖号码
将随机产生的7个中奖号码排序并输出
/*使用选择法将中奖号码从小到大排序*/ for(i=1;i<7;i++) {min=i; for(j=i+1;j<8;j++) if(win_num[min]>win_num[j]) min=j; tem=win_num[i]; win_num[i]=win_num[min]; win_num[min]=tem; } printf("\nWinning numbers are:\n"); for(i=1;i<=7;i++) printf("\t%d",win_num[i]); printf("\n\nThe special number is: %d\n",win1[8]); }
任务二 随机生成一组中奖号码
生成一组不重复的中奖号码
方法二、使用随机交换法 1. 将1~29的29个数字存放在数组元素win1[1]~ win1[29]。 2. 随机交换数组win1[]中任意两个元素,将数组win1[]中所有元 素打乱。 3. 将数组win1[]的win1[1]~win1[7]7个元素作为中奖号码。 4. 将数组win1[]中元素win1[8]作为特别号码。 5. 将数组win_num[]的win_num [1]~ win_num [7]7个元素进行排 序。 6. 程序结束。
相关文档
最新文档