Java题集(由入门到精通)03
此系列文章收录大量Java经典代码题(也可以算是leetcode刷题指南),希望可以与大家一起努力学好Java。3、2、1,请看!
目录
1.创建学生成绩表
2.冒泡排序
3.模拟彩票中奖
4.杨辉三角
1.创建学生成绩表
输入n个学生的成绩,并打印成绩高于平均分的学生。
分析:在这个问题中,口个学生的成绩需要同时存在,将其保存在一个数组中。n在程序
运行时从键强输人 (程序运行时决定到底有几个学生)。在声明数组时只出现了一个引用,此时不必也不能确定数组的大小;在程序运行的过程中,用new关键字动态创建数组对象,此时即可以传人已知的数组大小n。
public static void main(String[] args) throws Exception {
Scanner scn=new Scanner(System.in);
System.out.println("请输入学生数量");
int n=scn.nextInt();
System.out.println("请输入学生的成绩");
double []score=new double[n];
double sum=0;
for(int i=0;i<score.length;i++)
{
double m=scn.nextDouble();
score[i]=m;
sum+=score[i];
}
double ave=sum/score.length;
System.out.println("平均成绩为"+ave);
for(int i=0;i<score.length;i++)
{
if(score[i]>ave){
System.out.println(score[i]);
}
}
}
2.冒泡排序
所谓冒泡排序在这里就不多赘述了,代码如下:
public static void main(String[] args) throws Exception {
Scanner scn=new Scanner(System.in);
System.out.println("请输入数据数量");
int n=scn.nextInt();
int []array=new int[n];
for(int i=0;i<array.length;i++)
{
array[i]=(int)(Math.random()*100);
System.out.print(array[i]+" ");
}
int temp=0;
for(int i=0;i<array.length-1;i++)
{
for(int j=0;j<array.length-i-1;j++)
{
if(array[j]>array[j+1])
{
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
System.out.println("排序后结果为:");
for(int i=0;i<array.length;i++)
System.out.print(array[i]+" ");
}
3.模拟彩票中奖
中国福利彩票的双色球开奖规则:从编号是01~33的红色球中选取6个,从编号是01~16的蓝色球中选取一个。
分析:模拟这个抽奖过程,将红色球和蓝色球各自保存在一个 boolean 数组中,数组元素下标代表球号(从下标1开始使用),数组元素取值true/false 代表该球是否被选中(初始均为false)。抽奖过程中生成随机数代表开奖球在数组中的编号,如果该球尚未被选出,则将其选中标记置为 true。
public static void main(String[] args) throws Exception {
Scanner scn=new Scanner(System.in);
boolean []red=new boolean[34];//红球,编号1~33,默认值为:false
boolean []blue=new boolean[17];//篮球,编号为1~16
System.out.println("准备开奖");
int cont=0;
while (cont<6) {
int m=(int)(Math.random()*33)+1;//随机生成数字
if(red[m]==false)//未被标记则标记
{
red[m]=true;//进行标记
cont++;
}
}
int n=(int)(Math.random()*16)+1;
if(blue[n]==false)
blue[n]=true;
System.out.println("红色球编号为:");
for(int i=0;i<red.length;i++)
{
if(red[i]==true)
System.out.println((i<10?"0"+i:i)+" ");
}
System.out.println("蓝色球编号为:");
for(int i=0;i<blue.length;i++)
{
if(blue[i]==true)
System.out.println((i<10?"0"+i:i));
}
}
4.杨辉三角
如下面图片的数学模型即为杨辉三角
分析:可以使用Java不规则数组实现,在程序运行过程中动态创建数组
public static void main(String[] args) throws Exception {
Scanner scn=new Scanner(System.in);
System.out.println("输入要打印杨辉三角的行数");
int n=scn.nextInt();
int [][]tri=new int[n][];
tri[0]=new int[1];
tri[0][0]=1;//第一行为1
for(int i=1;i<tri.length;i++)
{
tri[i]=new int[i+1];
tri[i][0]=tri[i][i]=1;//每一行两端为1
for(int j=1;j<i;j++)
{
tri[i][j]=tri[i-1][j-1]+tri[i-1][j];
}
}
//输出杨辉三角
for(int i=0;i<tri.length;i++)
{
for(int j=0;j<tri[i].length;j++)
System.out.printf("%4d",tri[i][j]);
System.out.println();
}
}
这篇文章到此结束,感谢各位的阅读和所提出的宝贵意见,大家也可以试着自己动手编写代码。如果觉得这篇文章写的还可以或者对您有帮助,麻烦点赞收藏加转发!!!