哪位大侠能帮我做一个简单的抽奖程序啊,c++或者java的。
进入程序后可以设置总共有1~n个数字,然后可以选择将其中的某些数字剔除掉,然后便开始抽奖,抽奖时询问抽出多少个数字,然后显示出来,然后询问是否再次抽奖,输入抽出多少个数字,之前抽到过的数字不能再被抽到。以此类推。
哪位大侠能帮我做一个简单的抽奖程序啊,c++或者java的。
进入程序后可以设置总共有1~n个数字,然后可以选择将其中的某些数字剔除掉,然后便开始抽奖,抽奖时询问抽出多少个数字,然后显示出来,然后询问是否再次抽奖,输入抽出多少个数字,之前抽到过的数字不能再被抽到。以此类推。
试试我这个吧 刚刚手打的
#include <stdio.h>
#include <stdlib.h>
bool used[10001000];
int n,p,tot;
int main(void){
int i,t=1;
printf("请输入最大的号数:(目前该程序支持1000W)\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
used[i]=0;
while(t){
printf("请输入抽出的号码个数:\n");
scanf("%d",&p);
while(tot+p>n){
printf("对不起,当前所剩下的号码总数不足您需要抽出的号码数,请重新输入:(输入0退出本程序)\n");
scanf("%d",&p);
if(!p){system("pause");exit(0);}
}
tot+=p;
int tl=p;
while(p)
{
int tt=rand()+1;
tt*=rand()+1;
tt=tt%n+1;
if(!used[tt]){
used[tt]=1;
p--;
printf("%d ",tt);
}
}
printf("\n%d个号码都已抽出\n",tl);
if(tot==n){printf("所有号码都已抽中,本次抽奖结束。\n");system("pause");exit(0);}
else printf("还有号码剩余,是否再次抽奖?如果是请输入1 不是输入0\n");
scanf("%d",&t);
}
system("pause");
return 0;
}