利用随机数 产生抽奖结果 输出中奖号码和对应的名称

之前接触到了 猜数字游戏 (给出被猜测的数值 和 最大猜测次数,输出猜测结果)

当时想 既然是游戏 就不应该提前知道 被猜测的数字,所以产生了,利用随机数产生 被猜测数字的想法,经过一番摸索,

最终实现了"真正的猜数字游戏";

再后来,看到有人利用代码随即产生 n 个数,然后再随机抽取其中一个的案例;感觉自己由学到了一些好东西;

在完善以上代码的时候,"灵光乍现",产生了,利用随机数抽奖的想法,于是经过修改,得到了以下简单代码:

功能简介:抽奖~~~~

1、利用时间函数,产生随机数组

2、随机抽取数组中的任一数值作为种子选手

3、设置参与抽奖的总人数

4、利用种子选手和总人数,获得中奖号码

5、输出 中奖号码 及 对应人员名称

6、循环抽奖

#include <stdio.h>
#include<stdlib.h>                  //生成随机数用 
#include<time.h>                    //利用时间生成种子 
#include<math.h> 
/***名单**1-n为实际参与抽奖的人员名单**0 号给 boos 中奖几率为 0 哈哈****/
char *mingdan[]={"boos","lilei","hanmeimei","liudehua","xietingfeng","zhangbozhi","wangfei","liyapeng",
				"wangzuxian","zhengshaoqiu","zhaoyazhi","lingzhiling","chenglong"} ;                  
/*抽奖*/
void select_num(int n)
{
	printf("请输入参与抽奖总数:");
	int m; scanf("%d",&m);//可以后期输入,也可以在设置好名单后直接给 m 赋值
	printf("\n中奖号码为: %d\n\n",n%m+1); 
	printf("恭喜: %s\n\n",*(mingdan+n%m+1)); 
} 
int main()
{
      int i;
      int a[100];
      srand( time(NULL) );         //生成种子 
 	  printf("\n随机产生的100个数是:\n\n");//打印 
      for(i=0;i<100;i++)
      {
      	if(i%10==0)printf("\n(%2d~%2d)  ",i,i+9); 
       a[i]=rand()%1000+1000;      //生成一个小于1000的随机数
                                   //然后加1000,变成 1000 - 2000之间的数 
       printf("%d  ",a[i]);  
	       //打印 
      }
 
       i=rand()%100;              //随机抽取其中的一个数 
       printf("\n\n随机抽取到的是:第 %d 号  %d\n\n",i,a[i]);//打印 
 	   select_num(a[i]);//产生中奖号码和输出
      system("pause\n");
      /*循环*/
	printf("\n\t【】任意键继续\n\t【e】退出\n");
	fflush(stdin);
	char c=getchar();
	//执行选项 退出 or 继续
	if(c=='e') 
		return 0;
	else
		main() ;
}

代码中借鉴了某位论坛朋友的代码,如果您看到了这里,请联系我;声明出处。

很抱歉,当时没能记住!

此贴仅为学习交流。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值