抽奖代码逻辑(抽奖编程代码)
admin 发布:2022-12-19 08:27 144
今天给各位分享抽奖代码逻辑的知识,其中也会对抽奖编程代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、js随机抽奖一二三等奖不重复的抽奖逻辑怎么设置
- 2、Java代码实现抽奖:从班级的学号中抽出一个一等奖,两个二等奖,三个三等奖
- 3、用c语言编写一个简易的抽奖程序,
- 4、C语言程序设计——编写一个抽奖程序,生成0-9之间的随机数,猜对了奖励10块钱,没中奖显示中奖号码
js随机抽奖一二三等奖不重复的抽奖逻辑怎么设置
!DOCTYPE html
html
head
titlejs随机抽奖一二三等奖不重复的抽奖逻辑怎么设置/title
meta charset="UTF-8" /
script
//添加一个随机函数
Math.rand = function(min, max){
function subRand(min, max){
min = min ? min : 0;
max = max ? max : 9;
var result = 0;
do{
result = Math.random().toString().substr(2, 1);
}while(!(result = min result = max));
return result;
}
function getBit(maxBit){
maxBit = maxBit ? maxBit : max.toString().length;
var result = [],
count = 0;
for(var i = 0; i maxBit; i++){
result.push(subRand());
if(i != 0 result[i] == result[i - 1]){
count++;
}
}
return maxBit - count;
}
min = min ? min : 0;
max = max ? max : 0;
var result = '',
bit = getBit();
do{
result = '';
for(var i = 0; i bit; i++){
result = result + subRand();
}
result = parseInt(result);
}while(!(result = min result = max));
return result;
}
//console.log(Math.rand(0, 100));
//LuckDraw 抽奖类 参数一 奖池数组, 参数二 中奖数量 返回 中奖索引
function LuckDraw(pool, numberOfWinners){
var results = [],
//是否已经中奖
isExists = function(index){
for(var i = 0; i results.length; i++){
if(results[i] == index){
return true;
}
}
return false;
},
subLuckDraw = function(){
do{
result = Math.rand(0, pool.length - 1);
}while(isExists(result));
return result;
}
for(var i = 0; i numberOfWinners; i++){
results.push(subLuckDraw());
}
return results;
}
var pool = [
'关',
'张',
'赵',
'马',
'黄',
'曹老板'
];
winners = LuckDraw(pool, 3); //返回从奖池中 中奖的索引,假设123等奖都只有一名的话各取一个即可
//假设123等奖 一等奖 1名, 二等奖 2名, 三等奖 3名, 只需要调用这个函数第二个参数设置为总和 6 即可
//然后从结果中第一个索引为一等奖 23 索引为二等奖 , 456索引为 三等奖
console.log(winners);
/script
/head
body
script
for(var i = 0; i winners.length; i++){
document.write(pool[winners[i]] + ' 恭喜你中了' + (i + 1) + '等奖br /');
}
/script
/body
/html
Java代码实现抽奖:从班级的学号中抽出一个一等奖,两个二等奖,三个三等奖
抽取问题, 重点是 同一个学号不能重复被抽取.
解决办法很多,
比如数组可以使用下标来标记,号码是否被使用,使用了就继续下一次抽取
也可以使用集合来抽取,把集合顺序打乱,然后随便抽几个就可以了
参考代码:数组法
import java.util.Random;
public class Test {
public static void main(String[] args) {
int stuNums=30;
int[] nums=new int[stuNums];//存储学号的数组
boolean[] flags=new boolean[stuNums];//标记,用于标记对应下标的学号是否已经被抽取过了
for (int i = 0; i stuNums; i++) {
nums[i]=i+1;//给学号赋值
}
Random r=new Random();
while(true){
int index = r.nextInt(stuNums);
if(!flags[index]){
System.out.println("A等:"+nums[index]);
flags[index]=true; //标记已经被使用过了
break;
}
}
for (int i = 0; i 2; i++) {
int index = r.nextInt(stuNums);
if(!flags[index]){
System.out.println("B等:"+nums[index]);
flags[index]=true;
}else{
i--;//如果已经被抽取过了 ,那么i建议,再次循环
}
}
for (int i = 0; i 3; i++) {
int index = r.nextInt(stuNums);
if(!flags[index]){
System.out.println("c等:"+nums[index]);
flags[index]=true;
}else{
i--;
}
}
}
}
集合法
import java.util.ArrayList;
import java.util.Collections;
public class Test2 {
public static void main(String[] args) {
int stuNums=20;
ArrayListInteger list=new ArrayListInteger();
for (int i = 0; i stuNums; i++) {
list.add(i+1);
}
System.out.println("有序"+list);
Collections.shuffle(list);//打乱顺序
System.out.println("乱序"+list);
System.out.println("A等"+list.get(0));
System.out.println("B等"+list.get(1));
System.out.println("B等"+list.get(2));
System.out.println("C等"+list.get(3));
System.out.println("C等"+list.get(4));
System.out.println("C等"+list.get(5));
}
}
用c语言编写一个简易的抽奖程序,
用data.txt文件保存以下内容:
13725528132 李桂荣
13725528131 李二来
13725528133 张荣刚
13725528130 荣南
13725528137 王三
13725528138 吴立
13725528139 郭德纲
13725528140 周星驰
13725528141 张曼玉
13725528142 张艺谋
13725528152 秦香莲
13725528162 潘金莲
13725528172 李大嘴
13725528182 展堂
//源代码如下
#include stdio.h
#include stdlib.h
#include time.h
#define MAX_NUM 9999
//定义保存人名和电话的数据结构
struct Person
{
char name[20];
char telno[15];
char award;
};
int num = 0; //统计人数
FILE *fp; //文件指针
Person persons[MAX_NUM]; //定义数组
int awarder_1[1] = {-1}; //一等奖
int awarder_2[2] = {-1, -1}; //二等奖
int awarder_3[5] = {-1, -1, -1, -1, -1};//三等奖
//读取文件
void readdata()
{
int i = 0; //数组下标
Person person;
//文件打开
fp = fopen("data.txt", "r");
if (fp == NULL)
{
printf("打开文件data.txt失败!\n");
return;
}
//当文件不为空
while (!feof(fp))
{
num ++;
fscanf(fp, "%s", person.telno);
fscanf(fp, "%s", person.name);
person.award = 'F';
persons[i++] = person;
}
}
//初始化标识
void init()
{
for(int i = 0; i num; i++)
{
persons[i].award = 'F';
}
}
//显示单个中奖信息
void info( int i)
{
printf("手机号码: %s 姓名: %s\n", persons[i].telno, persons[i].name);
}
void main()
{
char again = 'Y';
//读取文件
readdata();
printf("简单抽奖程序\n");
srand((long)time(0));
while(again == 'Y' || again == 'y')
{
//初始化标识
init();
printf("\n开始抽第一等奖(1名),按任意键开始...\n");
getchar();
awarder_1[0] = abs(rand() % num);
while (persons[awarder_1[0]].award == 'T')
{
awarder_1[0] = rand() % num;
}
persons[awarder_1[0]].award = 'T';
info(awarder_1[0]);
printf("\n开始抽第二等奖(2名)\n");
for (int i = 0; i 2; i++)
{
printf("\n第%d个二等奖,按任意键开始...\n", i+1);
getchar();
awarder_2[i] = rand() % num;
while (persons[awarder_2[i]].award == 'T')
{
awarder_2[i] = rand() % num;
}
persons[awarder_2[i]].award = 'T';
info(awarder_2[i]);
}
printf("\n\n开始抽第三等奖(5名)\n");
for (i = 0; i 5; i++)
{
printf("\n第%d个三等奖,按任意键开始...\n", i + 1);
getchar();
awarder_3[i] = rand() % num;
while (persons[awarder_3[i]].award == 'T')
{
awarder_3[i] = rand() % num;
}
persons[awarder_3[i]].award = 'T';
info(awarder_3[i]);
}
printf("\n是否重新开始抽奖?(Y or N)...\n");
again = getchar();
}
getchar();
return;
}
C语言程序设计——编写一个抽奖程序,生成0-9之间的随机数,猜对了奖励10块钱,没中奖显示中奖号码
代码如下,已测试通过:
int main()
{
int no,ret;
printf("请输入你猜测的号码:\n");
scanf("%d",no);
ret=rand()%10;
printf("本次开奖结果=[%d]:\n",ret);
if(no==ret)
{
printf("恭喜你猜中了,中奖10元!\n");
}
else
{
printf("很遗憾,再来一次吧!\n");
}
return 0;
}
可以把上面代码改成多次输入,即将输入和取随机数都放在while循环中。自己修改下吧
抽奖代码逻辑的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于抽奖编程代码、抽奖代码逻辑的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
- 上一篇:易语言设置图片颜色代码(易语言配色文件)
- 下一篇:网站代码居中(web的居中代码)
相关推荐
- 05-06滚动导航代码(导航页面代码)[20240506更新]
- 05-06无间隔滚动代码(循环滚动代码)[20240506更新]
- 05-06jquery三级下拉菜单代码(jQuery下拉菜单)[20240506更新]
- 05-06透明css代码(css3透明)[20240506更新]
- 05-06微博设置完成获得嵌入代码(微博设置完成获得嵌入代码怎么弄)[20240506更新]
- 05-06图书馆代码查询(图书馆代码怎么看)[20240506更新]
- 05-06反调试代码(调试与反调试)[20240506更新]
- 05-06phpwind全局代码(php全局函数)[20240506更新]
- 05-06网页代码form什么意思(web中form)[20240506更新]
- 05-06滚动屏代码(数字滚动屏)[20240506更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接