之前接触到了 猜数字游戏 (给出被猜测的数值 和 最大猜测次数,输出猜测结果)
当时想 既然是游戏 就不应该提前知道 被猜测的数字,所以产生了,利用随机数产生 被猜测数字的想法,经过一番摸索,
最终实现了"真正的猜数字游戏";
再后来,看到有人利用代码随即产生 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() ;
}
代码中借鉴了某位论坛朋友的代码,如果您看到了这里,请联系我;声明出处。
很抱歉,当时没能记住!
此贴仅为学习交流。