数组

package com.eduask.test;


import java.util.Scanner;


/**
 * 1、完整模拟双色球开奖(需要使用到逻辑运算符、if else、while、for、数组排序、数组比对)
  数字要求: 无论自选或机选实现红球不重复
  6个红球号码不能重复,数字只能为1~33中的任意数字
                一个蓝球号码可以和红球重复,但数字只能为1~16中的任意一个
a、用户选号:
方式一自选:让用户输入6个红球号码、输入1个蓝球号码
方式二机选:随机抽取6个红球1个蓝球
输出用户选号结果(应对结果进行排序)

b、系统随机生成开奖号码:
抽取6个红球号码、1个蓝球号码
输出系统开奖号码(应对结果进行排序)


c、公布用户的中奖情况(一等奖,二等奖,三等奖...)
 * 
 *
 */
public class Ch01 {

static Scanner sc=new Scanner(System.in);//实例化输入对象  全局变量


public static void main(String[] args) {

int [] reds=new int[6]; //存放红色球
int blue=-1;//存放蓝球

System.out.println("欢迎来到J18福利彩票");
System.out.println("请选择购买方式  1、手选   2、机选");

int xz=sc.nextInt();//选择方式
if(xz==1){
//手选
//因为我们不知道要输入多少次才是不重复的6个红色球,所以定义一个死循环
for(int i=0;i<reds.length;i++){
System.out.println("请输入第"+(i+1)+"个号码:");
reds[i]=sc.nextInt();//存放输入的红色球号码
if(reds[i]<1||reds[i]>33){
System.out.println("你输入的号码超出范围,请重新输入~!");
i--;
}
//循环比较
for(int j=0;j<i;j++){
//判断 数组的数据是否有重复
if(reds[j]==reds[i]){
System.out.println("你输入的红色号码有重复");
i--;
break;
}
}
}
for(;;){
System.out.println("请输入蓝色球号码:");
blue=sc.nextInt();
if(blue>0&&blue<17){
break;
}
}

}else{
//机选  调用机选方法,返回机选的红色数组
reds=getRed();
// getRed();
blue=(int)(Math.random()*16+1);
}

//福利中彩票生成
int [] jReds=getRed();
int Jlue=(int)(Math.random()*16+1);

int count=0;

//使用穷举法  进行比对  
for(int i=0;i<reds.length;i++){
for(int j=0;j<jReds.length;j++){
//如果号码一致 自增
if(reds[i]==jReds[j]){
count++;
}
}
}
System.out.println("你的号码是:");
for(int i=0;i<reds.length;i++){
System.out.print(reds[i]+"\t");
}
System.out.println(blue);

System.out.println("开奖号码是:");
for(int i=0;i<jReds.length;i++){
System.out.print(jReds[i]+"\t");
}
System.out.println(Jlue);

if(blue==Jlue&&count<3){
System.out.println("六等奖,5块,可以吃个油条");
}else if(count==4&&blue!=Jlue){
System.out.println("五等奖、10块,2两面");
}else if(count==3&&blue==Jlue){
System.out.println("五等奖、10块,2两面");
}else if(count==5&&blue!=Jlue){
System.out.println("四等奖、200块,私房牛肉面");
}else if(count==4&&blue==Jlue){
System.out.println("四等奖、200块,私房牛肉面");
}else if(count==6&&blue==Jlue){
System.out.println("三等奖、3000块");
}else if(count==6&&blue!=Jlue){
System.out.println("二等奖、100000块");
}else if(count==6&&blue==Jlue){
System.out.println("一等奖、5000000块");
}else{
System.out.println("继续努力吧,少年");
}

}

/**
* 方法      
* @return
*/

//返回机选的红色球号码
//公共的静态方法   这个方式的返回类型      方法名字(见名知意)
public static int []            getRed(){
//6个红色球数组
int reds[]=new int[6];
//循环数组
for(int i=0;i<reds.length;i++){

reds[i]=(int)(Math.random()*33+1);
//循环比较
for(int j=0;j<i;j++){
//判断 数组的数据是否有重复
if(reds[j]==reds[i]){
i--;
break;
}
}
}


return reds;
}
}



package com.eduask.demo;


import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;


public class Demo {


public static void main(String[] args) {
// TODO Auto-generated method stub
one();
// two();
// three();
// four();
// five();
// six();
}

/**
* 1.使用随机数给一个10个元素的一维数组赋值,对10个整数排序。
*/
public static void one(){
int [] nums={12,15,18,28,38,138,848,1};
//选择排序
// for(int i=0;i<nums.length;i++){
// for(int j=i+1;j<nums.length;j++){
// if(nums[i]>nums[j]){
// int temp=nums[i];
// nums[i]=nums[j];
// nums[j]=temp;
// }
// for(int k=0;k<nums.length;k++){
// System.out.print(nums[k]+"\t");
// }
// System.out.println();
// }
// System.out.println();
// }
//
// for(int i=0;i<nums.length;i++){
// System.out.print(nums[i]+"\t");
// }
//冒泡排序
for(int i=0;i<nums.length;i++){
for(int j=0;j<nums.length-i-1;j++){
if(nums[j]>nums[j+1]){
int temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
for(int k=0;k<nums.length;k++){
System.out.print(nums[k]+"\t");
}
System.out.println();
}
System.out.println();
}

for(int i=0;i<nums.length;i++){
System.out.print(nums[i]+"\t");
}
}


/**
* 2.将一个数组倒序输出
 如:原数组:{56,89,4,1,3,69}
     输出后:{69,3,1,4,89,56}
*/
public static void two(){
int [] nums={56,89,4,1,3,69};
System.out.print("{");
//注意数组长度值问题,在初始化i的时候,需要 数组.length-1
for(int i=nums.length-1;i>=0;i--){
if(i==0){
System.out.print(nums[i]);
}else{
System.out.print(nums[i]+",");
}

}
System.out.println("}");
}
/**
* 3.使系统生成50个0-9之间的随机数,将每个数字出现的次数
存入一个一维数组中,统计出现次数最多和出现次数最少的数字,及出现次数
和出现频率。
*/
public static void three(){
int [] nums=new int[10];
for(int i=0;i<50;i++){
int num=(int)(Math.random()*10);//随机生成0-9
nums[num]++;//生成随机数  对应下标位置  自增
}
int maxIndex=0;//存储出现最多次数的下标
int minIndex=0;//存储出现最少次数的下标
//循环数组
for(int i=1;i<nums.length;i++){
//比较大小  交换位置
if(nums[maxIndex]<nums[i]){
maxIndex=i;
}
//比较大小  交换位置
if(nums[minIndex]>nums[i]){
minIndex=i;
}
}

//循序数组,比较数组中是否存在和最多最少 一致的次数
for(int i=0;i<nums.length;i++){

if(nums[maxIndex]==nums[i]){
System.out.println("最多的数是:"+i+","
+ "出现了"+nums[i]+",出现的频率:"+(nums[i]/50.0));
}

if(nums[minIndex]==nums[i]){
System.out.println("最少的数是:"+i+","
+ "出现了"+nums[i]+",出现的频率:"+(nums[i]/50.0));
}
}

}

/**
* 4.定义一个二维数组,在定义时给定数组长度,并通过输入为该数组赋值
*/

public static void four(){

int [][] nums=new int[3][4];
Scanner sc=new Scanner(System.in);
//循环第一层数组
for(int i=0;i<nums.length;i++){
for(int j=0;j<nums[i].length;j++){
System.out.println("请输入第"+(i+1)+"层数组的第"+(j+1)+"个的数据:");
nums[i][j]=sc.nextInt();
}
}

for(int i=0;i<nums.length;i++){
for(int j=0;j<nums[i].length;j++){
System.out.println("请输入第"+(i+1)+"层数组的第"+(j+1)+"个的数据:"+nums[i][j]);
}
}
}

/**
* 5、定义一个第一层长度为3的二维数组,通过随机数为每层数组定义长度,并通过length得到该数组的每层长度
*/

public static void five(){
/**
* 数组的维度不管多少,,一定是从最外层进行剥离
*/
int [][]nums=new int[3][];
//循环第一层数组
for(int i=0;i<nums.length;i++){
  //定义一个一维数组  长度随机生成  然把这个一维数组赋值给第一层的对应下标位
nums[i]=new int[(int)(Math.random()*9)];
}

for(int i=0;i<nums.length;i++){
 System.out.println(nums[i].length);
}
}
/**
* 6、三个同学四门课程
  1、为每位同学的每门课程打分
  2、求每个同学的平均分
  3、求每门课程的平均分
  4、求所有成绩中的最高分
  5、求所有成绩中100分有几个。 
*/
public static void six(){
int [][] nums=new int[3][4];
Scanner sc=new Scanner(System.in);
int max=-1;//存放的是最高分
int count=0;//存放的是100分的有多少个

//找的是每个同学
for(int i=0;i<nums.length;i++){
int tongxueavg=0;
//找的是没门课程
for(int j=0;j<nums[i].length;j++){
System.out.println("请输入第"+(i+1)+"个同学的第"+(j+1)+"课的成绩:");
nums[i][j]=sc.nextInt();// 打分

tongxueavg+=nums[i][j];//统计每个同学的总分数
//比较出所有同学的最高分数
if(max<nums[i][j]){
max=nums[i][j];
}
//记录100多少个
if(100==nums[i][j]){
count++;
}
}
System.out.println("第"+(i+1)+"个同学的平均分是:"+(tongxueavg/4));
}

System.out.println("最高分是:"+max);
System.out.println("100分成绩有"+count+"个。");
//因为我们需要统计的是 4门课程,所有外层循序4次,内层循环3次,
for(int i=0;i<4;i++){
int fs=0;
for(int j=0;j<3;j++){
fs+=nums[j][i]; //取值的层次是没有改变的
}
System.out.println("第"+(i+1)+"门课程的平均分:"+(fs/3));
}
}


}



package com.eduask.test;


import java.util.Scanner;


public class ATM {
static double money=0.0;//创建一个账户,金额0.0
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
for(;;){
System.out.println("欢迎来到爱存不存银行");
System.out.println("请选择交易类型:1 存钱 2 取钱 3 查询余额 4 退出");
int num=sc.nextInt();
if(num==1){
System.out.println("你的存款金额为:");
double m=sc.nextDouble();
add(m);
}else if(num==2){
System.out.println("你的取款金额为:");
double m=sc.nextDouble();
if(m>money){
System.out.println("余额不足");
}else{
if(m%100==0){
jian(m);
}else{
System.out.println("该机器只提供100元面值存取");
}

}

}else if(num==3){
query();
}else{
break;
}
}


}
/**
* 存钱
*/
public static void add(double m){
money+=m;
}
/**
* 取钱
*/
public static void jian(double m){
money-=m;
}
/**
* 查询余额
*/
public static void query(){
System.out.println("你的余额为:"+money);
}


}



package wangxin;


import java.util.Scanner;


public class Work4 {
    public static void main(String[] args) {
   
    //买车票=========================================================
    //定义输入语句对象
    Scanner wx=new Scanner(System.in);
   
   
    String []q={"哈尔滨","长春","沈阳","天津","北京","石家庄","郑州","武汉","广州"};
    int []b={0,49,77,98,136,195,243,302,397};
   
   
    System.out.println("请输入起点站:");
    String start=wx.next();
    System.out.println("请输入终点站:");
    String last=wx.next();
   
    //用循环找输入的值是否在数组内
    int index=-1;
    int index1=-1;
    for(int i=0;i<q.length;i++){
    if(start.equals(q[i])){
    index=i;
    }
    if(last.equals(q[i])){
    index1=i;
    }
    }  
    if(index1>index){
    //判断起点站
    if(index!=-1){
    System.out.println("你的起点是:"+q[index]);
    }
    //判断终点站
    if(index1!=-1){
    System.out.println("你的终点是:"+q[index1]);
    }
    int piao=b[index1]-b[index];
    System.out.println(q[index]+"到"+q[index1]+"的票价是:"+piao+"元");
    }
    //判断是不是终点起点颠倒
    else if(index1<index){
    System.out.println("你买的是反方向的车票");
    }
    //判断输入的是不是站台名字或者起点终点是不是同一站台
    else{
    System.out.println("起点站(或终点站)输入一致或错误,该站不是停靠站。");
    }

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值