中易网

哪位大侠能帮我做一个简单的抽奖程序啊,c++或者java的。

答案:2  悬赏:10  
解决时间 2021-04-27 11:16
  • 提问者网友:逝爱
  • 2021-04-27 02:26

哪位大侠能帮我做一个简单的抽奖程序啊,c++或者java的。

进入程序后可以设置总共有1~n个数字,然后可以选择将其中的某些数字剔除掉,然后便开始抽奖,抽奖时询问抽出多少个数字,然后显示出来,然后询问是否再次抽奖,输入抽出多少个数字,之前抽到过的数字不能再被抽到。以此类推。

最佳答案
  • 二级知识专家网友:都不是誰的誰
  • 2021-04-27 03:19

试试我这个吧   刚刚手打的 


#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;
    }

全部回答
  • 1楼网友:野性且迷人
  • 2021-04-27 03:48
要想达到此目的在Java中可以使用java.util中的Random类,此类的作用是可以产生指定数目的n个数字;再一个就是要使用java.util包中Scanner类,此类的作用是可以输入你想要输入的数字或字符串,已达到询问你下一步怎样操作的目的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息