需求:输入红包金额,红包个数,抢红包的人
最后输出每个人抢的金额,并输出所抢红包的最大金额
package qianghongbao;
import java.utial.*;
public class Hongbao{
public static void main(String[]args){
Scanner in = new Scanner (System.in);
int money; //定义红包金额
money=in.nextInt(); //输入红包总金额
int count; //
count=in.nextInt(); //输入红包个数
int one ; //定义单个红包金额
String [] names = {"老湿","王大锤 ","蛋蛋","建国","赖宝","土豆君"};//定义字符串数 //组,存储抢红包的人
String t =""; // 定义字符串接收字符串数组中提取的人名
Random d =new Random();//实例化随机数
for(int i =1;i<count;i++){ //循环强红包
int c = d.nextInt(6); //随机一个0到5的数
t= names[c]; //把这个随机数作为数组names的下标并取出相应值
if(names[c]==null){ //如果值为空
i=i-1; //循环变量i 减去一
continue; //返回下一次循环
}else{ //否则,所取names值不为空则
one=d.nextInt(money/2); //随机一个红包金额,上限为剩余 //金额的一半
if(one==0) //如如果所抢金额为零
one=1; // 则有安慰奖1元
money -= one; // 这时候总金额就要减去当次所抢红包金额
arr[i-1] =one; //所抢红包金额存入数组
}
system.out.println("第"+i+“个红包是”+t+“领取,金额为:”+one);
names[i]=null; //然后从names数组中清空抢到红包的人
if(i=names.length) //当i 值等于数组names的长度时
break; //跳出循环
}
if(count<=names.length){ //判断如果红包数小于抢红包人数时
for(int i=0;i<names.length;i++){ //循环找出还没有抢到红包的人
if(names[i] !=null) //下角标为i的值不为空时
system.out.println("第"+count+"个红包是"+names[i]+"领取,金额 为:"+money); //输出抢到最后红包的人及金额
break; //找出一个人后跳出循环
}
}
int max=arr[0];
for(int i =1;i<count;i++){
max= (arr[i]>max)?arr[i]:max;
}
system.out.println("手气王抢的金额为:"+max) ;