package com.j05.day0317.test;import java.util.Scanner;public class test { public static void main(String[] args) { abc1(); } /* * 编程输入整数a和b,若a或b大于100,则输出a、b的和与100的差,否则输出两数之和。 */ public static void abc1(){ Scanner sc=new Scanner(System.in); System.out.println("请输入一个数"); int a=sc.nextInt(); System.out.println("请输入另一个数"); int b=sc.nextInt(); if(a>100||b>100){ System.out.println(a+b-100); }else{ System.out.println(a+b); } } /* * 从键盘输入三角形的三边长,判断出这三边能否构成三角形。注:任意两边之和大于第三边 */ public static void abc2(){ Scanner sc=new Scanner(System.in); System.out.println("请输入第一边的值"); int a=sc.nextInt(); System.out.println("请输入第二边的值"); int b=sc.nextInt(); System.out.println("请输入第三边的值"); int c=sc.nextInt(); if(a+b>c&&a+c>b&&b+c>a){ System.out.println("能构成三角形"); }else{ System.out.println("不能构成三角形"); } } /* * 超市大优惠; * 满800元以上打6折,加送珍珠项链一条; * 满600元以上打7折,加送相册一本; * 满400元以上打8折,加送锆石一颗; * 满两百元以上打9折。 * 输入任意消费金额,打印其实际支付金额,若有赠送品,需显示在屏幕上。 */ public static void abc3(){ Scanner sc=new Scanner(System.in); System.out.println("请输入消费金额"); double money=sc.nextDouble(); if(money>800){ System.out.println(money*0.6+"送珍珠项链一条"); }else if(money>600&&money<=800){ System.out.println(money*0.7+"送相册一本"); }else if(money>400&&money<=600){ System.out.println(money*0.8+"送锆石一颗"); }else if(money>200&&money<=400){ System.out.println(money*0.9); }else{ System.out.println("不打折"); } } /* * 给一个不多于5位的正整数,要求: * 1.求出它是几位数 * 2.按逆序打印出各位数字,例如原数是123应输出321 */ //方法一 public static void abc4(){ Scanner sc=new Scanner(System.in); System.out.println("请输入一个不大于五位的正整数"); int num=sc.nextInt(); if(num<0||num>99999){ System.out.println("输入错误,请重新输入"); }else{ if(num<=9){ System.out.println("你输入的正整数倒序位:"+num); }else if(num>=10&&num<100){ int ge=num%10; int shi=num/10; System.out.println("你输入的正整数倒序为:"+ge+shi); }else if(num>=100&&num<1000){ int ge=num%10; int shi=num/10%10; int bai=num/100; System.out.println("你输入的正整数倒序为:"+ge+shi+bai); }else if(num>=1000&&num<10000){ int ge=num%10; int shi=num/10%10; int bai=num/100%10; int qian=num/1000; System.out.println("你输入的正整数倒序为:"+ge+shi+bai+qian); }else{ int ge=num%10; int shi=num/10%10; int bai=num/100%10; int qian=num/1000%10; int wan=num/10000; System.out.println("你输入的正整数倒序为:"+ge+shi+bai+qian+wan); } } } //方法二 public static void abc5(){ Scanner sc=new Scanner(System.in); System.out.println("请输入一个不大于五位的正整数:"); int a=sc.nextInt(); if(a<0&&a>99999){ System.out.println("输入错误,请重新输入"); }else{ if(a>=10000&&a<100000){ System.out.println("五位数,倒序为:"+a%10+(a%100-a%10)/10+(a%1000-a%100)/100+(a%10000-a%1000)/1000+(a-(a%10000))/10000); }else if(a>=1000&&a<10000){ System.out.println("四位数,倒序为:"+a%10+(a%100-a%10)/10+(a%1000-a%100)/100+(a-a%100)/1000); }else if(a>=100&&a<1000){ System.out.println("三位数,倒序为:"+a%10+(a%100-a%10)/10+(a-a%100)/100); }else if(a>=10&&a<100){ System.out.println("两位数,倒序为:"+a%10+(a-a%10)/10); }else{ System.out.println("一位数,倒序为"+a); } } } /* * 输入某年某月某日,判断这一天的下一天是几月几日。 */ public static void abc6(){ 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(); if(month==1||month==3||month==5||month==7||month==8||month==10){ if(day==31){ month++; day=1; }else{ day++; } }else if(month==4||month==6||month==9||month==11){ if(day==30){ month++; day=1; }else{ day++; } }else if(month==12){ if(day==31){ year++; month=1; day=1; }else{ day++; } }else{ if(year%4==0&&year%100!=0||year%400==0){ if(day==29){ month++; day=1; }else{ day++; } }else{ if(day==28){ month++; day=1; }else{ day++; } } } System.out.println("你输入的日期的下一天为:"+year+"年"+month+"月"+day+"天"); } /* * 从键盘输入两个数和一个运算符(+、-、*、/),输出运算结果(switch语句写) */ public static void abc07(){ Scanner sc=new Scanner(System.in); System.out.println("请输入第一个数"); int a=sc.nextInt(); System.out.println("请输入第二个数"); int b=sc.nextInt(); char c=sc.next().charAt(0); switch(c){ case '+':System.out.println("a+b="+(a+b));break; case '-':System.out.println("a-b="+(a-b));break; case '*':System.out.println("a*b="+(a*b));break; case '/':System.out.println("a/b="+(a/b));break; default:System.out.println("输入错误"); } } /* * 输出1~100中的所有偶数 */ //方法一 public static void abc08(){ for(int a=1;a<=100;a++){ if(a%2==0){ System.out.println("偶数为:"+a); } } } //方法二 public static void abc09(){ int a=2; while(a<=100){ System.out.println("偶数为:"+a); a+=2; } } /* * 输出1+2+3+4+...+100的和 */ //方法一 public static void abc10(){ int a=0; for(int i=1;i<=100;i++){ a=a+i; } System.out.println(a); } //方法二 public static void abc11(){ int a=1; int b=0; while(a<=100){ b=a+b; a++; } System.out.println(b); } /* * 由输入的值决定循环的执行次数,循环变量默认从1开始 */ //方法一 public static void abc12(){ Scanner sc=new Scanner(System.in); System.out.println("请输入一个正整数"); int a=sc.nextInt(); int b=1;//b=0时,后面的循环次数改成b+1 while(b<a){ System.out.println("我已经循环了"+b+"次了"); b++; } } //方法二 public static void abc13(){ Scanner sc=new Scanner(System.in); System.out.println("请输入一个正整数"); int i=sc.nextInt(); for(int num=1;num<=i;num++){ System.out.println("我已经循环了"+num+"次了"); } } /* * 用户输入一个10以内的数字,通过运算求出该数字的阶乘 */ public static void abc14(){ Scanner sc=new Scanner(System.in); System.out.println("请输入一个10以内的正整数"); int num=sc.nextInt(); int sum=1; for(int i=1;i<=10;i++){ sum=sum*i; System.out.println("i="+i); System.out.println(sum); } System.out.println(sum); } /* * 手动输入两个数字m和n,运算求出m~n之间所有偶数的和 */ public static void abc15(){ Scanner sc=new Scanner(System.in); System.out.println("请输入两个整数"); int m=sc.nextInt(); int n=sc.nextInt(); int sum=0; if(m>n){ for(int i=n;i<=m;i++){ if(i%2==0){ sum=sum+i; System.out.println(sum); } } }else{ for(int i=m;i<=n;i++){ if(i%2==0){ sum=sum+i; System.out.println(sum); } } } System.out.println(sum); } /* * 模拟注册以及登录: * 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]+" "); }}
有错误的地方望各位好友帮忙修改,谢谢!
- 4楼MJ_jion
- 别把所有的方法写在一个类里面,直接贴方法就好。
- Re: 独守心岚
- @MJ_jion,谢了
- 3楼独守心岚
- 怎么都没有人评论?
- Re: 深海寻针
- @独守心岚,写的真好,楼主辛苦了
- 2楼独守心岚
- 中间有一些小的问题
- 1楼独守心岚
- 帮忙修改一下