当前位置: 代码迷 >> Java相关 >> java基础知识(i++个事例)
  详细解决方案

java基础知识(i++个事例)

热度:99   发布时间:2016-04-22 19:11:00.0
java基础知识(i++个例子)
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楼独守心岚
帮忙修改一下
  相关解决方案