/*
* 模拟注册以及登录:
* 1.注册不知道用户的操作次数,所以需要使用死循环;
* 2.档用户确定了用户名和密码后,注册成功。保存下用户输入的用户名及密码;
* 3.登录最多只能三次,如果第三次还没有成功直接退出程序
* 思考? 1.用户名和密码怎样保存
* 2.用一个只能执行三次的循环控制登录次数,但是要求第三次时其实“再见”
*/
public static void abc16(){
String username="";
String password="";
Scanner sc=new Scanner(System.in);
for(;;){
System.out.println("请输入用户名");
username=sc.nextLine();
System.out.println("请输入密码");
String ps1=sc.nextLine();
System.out.println("请确认密码");
String ps2=sc.nextLine();
if(ps1.equals(ps2)){
System.out.println("注册成功!");
password=ps1;
break;
}
}
for(int i=1;i<=3;i++){
System.out.println("请输入用户名:");
String newUserName=sc.next();
System.out.println("请输入密码:");
String newPassWord=sc.next();
if(newUserName.equals(username)&&newPassWord.equals(password)){
System.out.println("登录成功!");
break;
}else{
System.out.println("你还有"+(3-i)+"次机会");
if(i==3){
System.out.println("拜拜");
}
continue;
}
}
}
/*
* 1.把100~200中不能被3整除的数输出,每四个换行输出
*
*/
public static void abc17(){
int count=0;
for(int i=100;i<=200;i++){
if(i%3!=0){
if(count<3){
System.out.print(i+"\t");
count++;
}else{
System.out.println(i);
count=0;
}
}
}
}
/*
* 输出1~100之间的奇数,每行输出5个数字
*/
public static void abc18(){
int count=0;
for(int i=1;i<=100;i++){
if(i%2!=0){
if(count<4){
System.out.print(i+"\t");
count++;
}else{
System.out.println(i);
count=0;
}
}
}
}
/*
* 输出一个字符串,统计该字符中分别包含多少个数字,多少个字母,多少个其他字符
*/
public static void abc19(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符:");
String a=sc.nextLine();
int zimu=0;
int num=0;
int other=0;
for(int i=0;i<a.length();i++){
char ch=a.charAt(i);
if('0'<=ch&&ch<='9'){
num++;
}else if('a'<=ch&&'z'>=ch){
zimu++;
}else{
other++;
}
}
System.out.println("字母"+zimu+"个");
System.out.println("数字"+num+"个");
System.out.println("其他字符"+other+"个");
}
/*
* 有一群猪(100~200之间),如果分成4个猪一组,则多2个猪;若分成7个猪一组,则多
* 3个猪;若分成9个猪一组则多5个猪,试求出猪的总数
*/
public static void abc20(){
for(int i=100;i<=200;i++){
if(i%4==2&&i%7==3&&i%9==5){
System.out.println("猪的总数为:"+i);
}
}
}
/*
* 算水仙花数量(100~999):表示三位数字,个位的三次方+十位的三次方+百位的
* 三次方=这个数本身
*/
public static void abc21(){
for(int i=100;i<=999;i++){
int g=i%10;
int s=i/10%10;
int b=i/100;
if(g*g*g+s*s*s+b*b*b==i){
System.out.println(i);
}
}
}
/*
* 计算机随机产生一个数,用户进行猜数,直到猜正确为止
*/
public static void abc22(){
Scanner sc=new Scanner(System.in);
for(;;){
int num=(int)(Math.random()*10);
System.out.println(num);
System.out.println("请输入一个10以内整数:");
int a=sc.nextInt();
if(num==a){
break;
}
}
System.out.println("我猜对了");
}
/*
* 随机生成一个数(范围自定),直到生成的数是88,则跳出循环,并
* 统计一共执行了多少次(使用break)
*/
public static void abc23(){
int count=0;
for(;;){
count++;
int num=(int)(Math.random()*100);
if(num==88){
System.out.println("随机生成88了");
break;
}
}
System.out.println("随机了"+count+"次");
}
/*
* 判断1~10000之间有多少个7的倍数
*/
public static void abc24(){
int count=0;
for(int i=1;i<=10000;i++){
if(i%7==0){
count++;
}
}
System.out.println("共有"+count+"个7的倍数");
}
/*
* A
* AB
* ABC
* ABCD
* ABCDE
*/
public static void abc25(){
for(int i=1;i<=5;i++){
char a='A';
for(int j=1;j<=i;j++){
System.out.print(a);
a++;
}
System.out.println();
}
}
/*
* A
* BB
* CCC
* DDDD
* EEEEE
*/
public static void abc26(){
char a='A';
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
System.out.print(a);
}
a++;
System.out.println();
}
}
/*
* A
* BC
* DEF
* GHIJ
* KLMNO
*/
public static void abc27(){
char a='A';
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
System.out.print(a);
a++;
}
System.out.println();
}
}
/*
* *****
* * *
* * *
* * *
* *****
*/
//方法一
public static void abc28(){
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(i==2||i==3||i==4){
if(j==2||j==3||j==4){
System.out.print(" ");
continue;
}
}
System.out.print("*");
}
System.out.println();
}
}
//方法二
public static void abc29(){
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(i>=2&&i<=4){
if(j==1||j==5){
System.out.print("*");
}else{
System.out.print(" ");
}
}else{
System.out.print("*");
}
}
System.out.println();
}
}
/*
* *
* **
* * *
* * *
* *****
*/
//方法一
public static void abc30(){
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
if(i==3&&j==2){
System.out.print(" ");
}else if(i==4&&(j==2||j==3)){
System.out.print(" ");
}else{
System.out.print("*");
}
}
System.out.println();
}
}
//方法二
public static void abc31(){
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
if(i==j||j==1){
System.out.print("*");
}else if(i==5){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
/*
* *
* **
* ***
* ****
* *****
*/
//方法一
public static void abc32(){
for(int i=1;i<=5;i++){
for(int j=5;j>=1;j--){
if(j-i>0){
System.out.print(" ");
}else{
System.out.print("*");
}
}
System.out.println();
}
}
//方法二
public static void abc33(){
for(int i=1;i<=5;i++){
for(int k=(5-i);k>0;k--){
System.out.print(" ");
}
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
/*
* 已知S=1*2*3*......*n,计算出S不大于5000时n的最大值
*/
//方法一
public static void abc34(){
int sum=1;
int num=0;
for(int i=1;;i++){
sum=sum*i;
num=i;
if(sum>5000){
break;
}
}
System.out.println(num-1);
}
//方法二
public static void abc35(){
int sum=1;
int num=0;
do{
num++;
sum*=num;//sum=sum*num
}while(sum<5000);
System.out.println(num-1);
}
//方法三
public static void abc36(){
int sum=1;
int num=0;
while(sum<5000){
num++;
sum=sum*num;
}
System.out.println(num-1);
}
/*
* 三个班的同学参加比赛,每个班五名同学
* 1.求出各班的总分和平均分
* 2.求出各班的最高分
* 3.求出全部分数中的最高分
*/
public static void abc37(){
Scanner sc=new Scanner(System.in);
int all_zg=0;
for(int i=1;i<=3;i++){
int gbzf=0;
int pj=0;
int zg=0;
for(int j=1;j<=5;j++){
System.out.println("请输入"+i+"班的"+j+"同学的成绩");
int num=sc.nextInt();
if(j==1){
zg=num;
}
gbzf+=num;
if(num>zg){
zg=num;
}
if(j==5){
System.out.println(i+"班总分="+gbzf);
System.out.println(i+"班平均="+(gbzf/5));
System.out.println(i+"班最高="+zg);
}
}
if(all_zg<zg){
all_zg=zg;
}
System.out.println("全部最高"+all_zg);
}
}
/*
* 100~200之间有哪些数是质数?
*/
public static void abc38(){
for(int i=100;i<=200;i++){
boolean a=true;
for(int j=2;j<=i-1;j++){
if(i%j==0){
a=false;
}
}
if(a){
System.out.print("质数为:"+i+"\t");
}
}
System.out.println();
}
/*
* 求1+(1+2)+(1+2+3)+(1+2+3+4)+...(1+2+3+..+10)的和
*/
public static void abc39(){
int sum=0;
for(int i=1;i<=10;i++){
int num=0;
for(int j=1;j<=i;j++){
num=num+j;
}
sum=num+sum;
}
System.out.println("求得的和为:"+sum);
}
/*
* 求1+(1*2)+(1*2*3)+(1*2*3*4)+(1*2*3*4*5)的和
*/
public static void abc40(){
int sum=0;
for(int i=1;i<=5;i++){
int num=1;
for(int j=1;j<=i;j++){
num=num*j;
}
sum=num+sum;
}
System.out.println("求得的和为:"+sum);
}
/*
* 100元买100只鸡
* 公鸡五元一只;
* 母鸡3元一只;
* 小鸡一元3只;
* 问公鸡、母鸡和小鸡各多少只?
*/
public static void abc41(){
for(int gj=0;gj<=20;gj++){
for(int mj=0;mj<=33;mj++){
for(int xj=0;xj<=100;xj++){
if(gj+mj+xj==100&&(gj*5+mj*3+xj/3==100)&&xj%3!=0){
System.out.println("公鸡为"+gj+"只\t"+"母鸡为"+mj+"只\t"+"小鸡为"+xj+"只");
}
}
}
}
}
/*
* 婚礼上的谎言
三个新郎为A、B、C,三个新娘为X、Y、Z。
有人想知道究竟谁和谁结婚,
于是就问新人中的三位,得到如下提示:
A说他将和X结婚; A!=X X!=C C!=Z
X说她的未婚夫是C,
C说他将和Z结婚。
这个人事后知道他们在开玩笑,全是假话,
那么,究竟谁与谁结婚呢?
*/
public static void abc42(){
for(char A='X';A<='Z';A++){
for(char B='X';B<='Z';B++){
for(char C='X';C<='Z';C++){
if(A!='X'&&C!='X'&&C!='Z' &&A!=B&&B!=C&&C!=A){
System.out.println("新郎A将和新娘"+A+"结婚");
System.out.println("新郎B将和新娘"+B+"结婚");
System.out.println("新郎C将和新娘"+C+"结婚");
}
}
}
}
}
/*
* 有1、2、3、4个数字,能组成多少个无重复数字的三位数?都是多少?
*/
public static void abc43(){
int count=0;
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
if(i!=j&&i!=k&&j!=k){
count++;
System.out.println(count+"组成的三位数为:"+i+j+k);
}
}
}
}
}
/*数组
* 1.int [] a=new int[10];//10表示10个空间
* 赋值 a[0]=8;//从0开始
* a[1]==10;
* 2.int [] a={5,6,7,8,9};
* 3.int [] a=new int[]{5,6,7,8,9};
*
* 定义一个数组,由键盘输入值来赋值,并输出该数组的各值
*/
public static void abc44(){
Scanner sc=new Scanner(System.in);
int [] a=new int[5];
for(int i=0;i<=a.length-1;i++){
System.out.println("请输入第"+(i+1)+"个数");
a[i]=sc.nextInt();
}
for(int b:a){
System.out.print(b+"\t");
}
}
/*
* 由键盘输入范围和个数的随机数数组,求出随机生成的数组的最大值和最小值,并求出他们的和。
*/
public static void abc45(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入多少以内的随机数:");
int i=sc.nextInt();
System.out.println("请确定要多少个随机数:");
int j=sc.nextInt();
int [] a=new int[j];
for(int s=0;s<=a.length-1;s++){
a[s]=(int)(Math.random()*i);
}
int sum=0,min=0,max=0;
boolean cc=true;
for(int b:a){
sum=sum+b;
System.out.print(b+"+");
if(cc){
min=b;
cc=false;
}
if(b<min){
min=b;
}
if(b>max){
max=b;
}
}
System.out.print("="+sum);
System.out.println("\n最大值是:"+max+"\n最小值是:"+min);
}
/*
* 用随机数给一个整型数组赋值,并对数组求和。(范围自定)
*/
public static void abc46(){
int [] a=new int[5];
for(int i=0;i<=a.length-1;i++){
a[i]=(int)(Math.random()*100);
}
int sum=0;
for(int b:a){
sum=sum+b;
System.out.println(b);
}
System.out.println("和为:"+sum);
}
/*
* 对一组已经赋值的int类型的数组,找出其中的最大值和最小值
*/
public static void abc47(){
int [] a={10,9,99,2,8,11,55};
int max=0;
int min=0;
for(int i=0;i<=a.length-1;i++){
if(i==0){
max=a[i];
min=a[i];
}
if(max<a[i]){
max=a[i];
}
if(min>a[i]){
min=a[i];
}
}
System.out.println("最大值为:"+max);
System.out.println("最小值为:"+min);
}
/*
* 查找一个数,是否存在于数组当中,在数组的第几位
*/
public static void abc48(){
int [] a={44,13,12,8,9,75,45,10};
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数");
int num=sc.nextInt();
int count=0;
//方法一 for(int b:a){
// count++;
// if(b==num){
// break;
// }
// }
for(int i=0;i<=a.length-1;i++){
if(a[i]==num){
count=i+1;
break;
}
}
System.out.println("在第几位:"+count);
}
/*冒泡排序(两两比较,两两交换)
*
* 对一组已经赋值的int类型的数组按照顺序的方式排序
*/
public static void abc49(){
int [] a={12,53,32,46,199,17,75,54};
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length-i-1;j++){
if(a[j]>a[j+1]){
int b=a[j];
a[j]=a[j+1];
a[j+1]=b;
}
}
}
for(int c:a){
System.out.print("排序为:"+c+"\t");
}
}
/*
* 输入某年某月某日,判断这一天是这一年的第几天?
*/
//方法一(用数组)
public static void abc50(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入年:");
int year=sc.nextInt();
System.out.println("请输入月:");
int month=sc.nextInt();
System.out.println("请输入日:");
int day=sc.nextInt();
int [] m={31,28,31,30,31,30,31,31,30,31,30,31};
int sum=0;
for(int i=0;i<month-1;i++){//把输入月份-1的天数相加
sum=sum+m[i];
}
if(year%4==0&&year%100!=0||year%400==0){
if(month>2){
sum++;
}
}
sum=sum+day;
System.out.println("今年的第"+sum+"天");
}
//方法二(用switch)
public static void abc51(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入年:");
int year=sc.nextInt();
System.out.println("请输入月:");
int month=sc.nextInt();
System.out.println("请输入日:");
int day=sc.nextInt();
int sum=0;
int february=28;
if(year%4==0&&year%100!=0||year%400==0){
february=29;
}
switch(month){
case 1:sum=day;break;
case 2:sum=31+day;break;
case 3:sum=31+february+day;break;
case 4:sum=31+february+31+day;break;
case 5:sum=31+february+31+30+day;break;
case 6:sum=31+february+31+30+31+day;break;
case 7:sum=31+february+31+30+31+30+day;break;
case 8:sum=31+february+31+30+31+30+31+day;break;
case 9:sum=31+february+31+30+31+30+31+31+day;break;
case 10:sum=31+february+31+30+31+30+31+31+30+day;break;
case 11:sum=31+february+31+30+31+30+31+31+30+31+day;break;
case 12:sum=31+february+31+30+31+30+31+31+30+31+30+day;break;
default :System.out.println("输入错误");
}
System.out.println(year+"年"+month+"月"+day+"日是今天的第"+sum+"天");
}
/*
* 火车票价格打印,
哈尔滨到广州的火车,有9个停靠站(包括起点站和终点站)
分别是:"哈尔滨","长春","沈阳","天津","北京","石家庄","郑州","武汉","广州"。
从哈尔滨到各个站的票价分别是:
哈尔滨→哈尔滨 :0元
哈尔滨→长春 : 49元
哈尔滨→沈阳 : 77元
哈尔滨→天津 : 98元
哈尔滨→北京 : 136元
哈尔滨→石家庄 :195元
哈尔滨→郑州 : 243元
哈尔滨→武汉 : 302元
哈尔滨→广州 : 397元
长春到沈阳的票价=77(哈尔滨→沈阳)-49(哈尔滨→长春),依此类推,求输入任意起点站到任意终点站的票价。
最后显示结果如下例:
请输入起点站:北京
请输入终点站:武汉
从北京到武汉的票价为:166元
若输入起点站或终点站不在7个停靠站之内,提示用户:
起点站(或终点站)输入错误,该站不是停靠站。
*/
public static void abc52(){
String [] name={"哈尔滨","长春","沈阳","天津","北京","石家庄","郑州","武汉","广州"};
int [] price={0,49,77,98,136,195,243,302,397};
Scanner sc=new Scanner(System.in);
int start_con=-1;//输入起点站名称的下标
int end_con=-1;//存储终点站下标
while(true){ //判断输入的起点站存在于数组当中
System.out.println("请输入起点站名称:");
String s_name=sc.next();
for(int i=0;i<name.length;i++){
if(s_name.equals(name[i])){
start_con=i;
}
}
if(start_con==-1){
System.out.println("对不起,我们没有卖这个站的票");
}else{
break;
}
}
while(true){
System.out.println("请输入终点站名称:");
String s_name=sc.next();
for(int i=0;i<name.length;i++){
if(s_name.equals(name[i])){
end_con=i;
}
}
if(start_con==end_con){
System.out.println("起点站和终点站不能一样!");
continue;
}
if(end_con==-1){
System.out.println("对不起,我们没有卖这个站的票");
}else{
break;
}
}
System.out.println("从"+name[start_con]+"到"+name[end_con]+
"的车票价格:"+(price[end_con]-price[start_con])+"元");
}
/*
*
* 利用数组保存数据,完成超市小票的打印 如:
* 请输入购买商品:毛巾
* 请输入单价:25.0
* 请输入购买数量:2
* 请输入购买商品:盆
* 请输入单价:15.0
* 请输入购买数量:3
*
* ======欢迎光临**超市===========
* 商品名称 单价 数量 总价
* 毛巾 25.0 2 50.0
* 盆 15.0 3 45.0
*
*
* 您一共消费:95.0元
*/
public static void abc53(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要购买商品的种类:");
int count = sc.nextInt();
double price=0;
String[] str = new String[count];
double[] dj = new double[count];
int[] num = new int[count];
double[] money = new double[count];
for (int i = 0; i <= count - 1; i++) {
System.out.println("请输入商品名称:");
str[i] = sc.next();
System.out.println("请输入商品单价:");
dj[i] = sc.nextDouble();
System.out.println("请输入商品数量:");
num[i] = sc.nextInt();
money[i] = dj[i] * num[i];
}
System.out.println("======欢迎光临摩尔超市===========");
System.out.println("商品名称" + "\t" + "商品单价" + "\t" + "商品数量" + "\t" + "总价");
for (int i = 0; i <= count - 1; i++) {
System.out.println(str[i] + "\t" + dj[i] + "\t" + num[i] + "\t"
+ money[i]);
price+=money[i];
}
System.out.println("您一共消费"+price);
}
/*
* 将商品的名称以及单价存储在数组中,用户输入商品名称,只有当货架上有该商品时,
* 将该商品存入客户购买商品的数组中,从而输出超市小票 如:
* 请输入商品名称:毛巾
* (如果没有该商品) 对不起,没有这件商品 (如果有该商品) 请输入购买数量:4
*
* 循环。。。。直到用户退出为止
*
*
* ======欢迎光临**超市===========
* 商品名称 单价 数量 总价
* 毛巾 25.0 2 50.0
* 盆 15.0 3 45.0
*
* 您一共消费:95.0元
*
* 注意:商品的单价不需要输入,而是由之前定义的数据得到
*/
public static void abc54(){
String [] name={"毛巾","盆","杯子","洗衣粉","风扇","菜刀","书包"};
double [] price={15,12,5,10,40,26,31};
Scanner sc=new Scanner(System.in);
System.out.println("请输入你购买商品的种类:");
int count=sc.nextInt();
String [] buy_name=new String[count];//名称
int [] buy_num=new int[count];//数量
double [] buy_price=new double[count];//单价
double sum_price=0;//总价
int con=-1;
for(int i=0;i<3;i++){
System.out.println("请输入你购买商品的名称:");
String str=sc.next();
for(int j=0;j<name.length;j++){
if(str.equals(name[j])){
con=j;
}
}
if(con==-1){//判断商品是否存在
i--;
System.out.println("你购买的商品不存在");
}else{
System.out.println("请输入购买的数量:");
buy_num[i]=sc.nextInt();
buy_name[i]=name[con];
buy_price[i]=price[con];
}
}
System.out.println("======欢迎光临摩尔超市===========");
System.out.println("商品名称\t单价\t数量\t总价");
for(int i=0;i<count;i++){
System.out.println(buy_name[i]+"\t"+buy_price[i]+
"\t"+buy_num[i]+"\t"+(buy_num[i]*buy_price[i]));
sum_price+=(buy_num[i]*buy_price[i]);
}
System.out.println("您一共消费:"+sum_price+"元");
}
/*多维数组(二维)
* 定义一个二维数组,在定义时给定数组长度,并通过输入为该数组赋值
*/
public static void abc55(){
Scanner sc=new Scanner(System.in);
int [][] a=new int[4][3];
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
System.out.println("请输入一个数");
a[i][j]=sc.nextInt();
}
}
for(int [] b:a){
for(int c:b){
System.out.print(c+"\t");
}
System.out.println();
}
}
/*
* 定义一个第一层长度为3的二维数组,通过随机数为每层数组定义长度,并通过length得到该数组的每层长度
*/
public static void abc56(){
int [][] a=new int[3][];
for(int i=0;i<a.length;i++){
int num=(int)(Math.random()*10+1);
a[i]=new int[num];
System.out.println(a[i].length);
}
}
/*
* 三个同学四门课程
* 1、为每位同学的每门课程打分
* 2、求每个同学的平均分
* 3、求每门课程的平均分
* 4、求所有成绩中的最高分
* 5、求所有成绩中100分有几个。
*/
public static void abc57(){
Scanner sc=new Scanner(System.in);
int [][] cj=new int[3][4];
for(int i=0;i<cj.length;i++){
for(int j=0;j<cj[i].length;j++){
System.out.println("请输入第"+(i+1)+"位学生的第"+(j+1)+"课成绩:");
cj[i][j]=sc.nextInt();
}
}
//求每个同学的平均分
for(int i=0;i<cj.length;i++){
int pj=0;
for(int j=0;j<cj[i].length;j++){
pj+=cj[i][j];
}
System.out.println("第"+(i+1)+"同学的成绩平均分是:"+(pj/4));
}
//求每门课程的平均分
for(int i=0;i<4;i++){
int num=0;
for(int j=0;j<3;j++){
num+=cj[j][i];
}
System.out.println("第"+(i+1)+"门课程的平均成绩是:"+(num/3));
}
//求所有成绩中的最高分
int sum=0;
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
if(sum<cj[i][j]){
sum=cj[i][j];
}
}
}
System.out.println("最高成绩是:"+sum);
//求所有成绩中100分有几个
int count=0;
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
if(cj[i][j]==100){
count++;
}
}
}
System.out.println("成绩中100分有"+count+"个");
}
/*
* 将一个数组倒序输出.如:原数组:{56,89,4,1,3,69}
* 倒序为:{69,3,1,4,89,56}
*/
public static void abc58(){
int [] a={56,89,4,1,3,69};
for(int i=a.length-1;i>=0;i--){
System.out.print(a[i]+"\t");
}
}
//选择排序
//原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置
//比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,
//则将其与第一位交换,使最大数置于第一位
//第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
//则将其与第二位交换,使最大数置于第二位
//依次类推.........................................
//第i次再循环查找第i大的数并记下其位置,如果其不在数组第 i位,
//则将其与第 i位交换,使最大数置于第 i位
public static void abc59(){
int[] a = {25,15,42,16,12,36};
int max = 0;
for(int i=0;i<a.length;i++){//查找第 i大的数,直到记下第 i大数的位置
max = i;
for(int j=i+1;j<a.length;j++){
if(a[max]<a[j]){
max = j;//记下较大数位置,再次比较,直到最大
}
}
if(i!=max){//如果第 i大数的位置不在 i,则交换
int tmp = a[i];
a[i] = a[max];
a[max] = tmp;
}
}
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}
链接: https://www.cnblogs.com/dushouxinlan/p/5319512.html
Java基础案例
最新推荐文章于 2024-07-08 10:57:58 发布
这篇博客深入探讨了Java编程的基础知识,包括语法、类与对象、异常处理和集合框架的使用。通过实例解析,帮助读者掌握核心概念并提升编程技能。
摘要由CSDN通过智能技术生成