算法分享--50道基础算法

来源:互联网 发布:北京知企科技 编辑:程序博客网 时间:2024/06/11 12:33

哈哈,偶然翻到大学业余时间做的50道基础算法题,简单的分享给入门的同学们,大牛不要喷。

----------------------第一题-----------------------------题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? public static void main(String[] args)     {        System.out.println("请输入月份");        Scanner input = new  Scanner(System.in);        int num = input.nextInt();        System.out.println("兔子的对数为"+getRabbitNum(num));        }        //根据兔子数规律找到递归方法,n代表月份        public static int getRabbitNum(int n)         {            if (n == 1 || n == 2)            {                return 1;            }        else         {            return getRabbitNum(n - 1) + getRabbitNum(n - 2);        }    }----------------------第二题-----------------------------判断101-200之间有多少个素数,并输出所有素数。public static void main(String[] args)    {        int num = 101;        int temp = 0;        for (int i = 101; i <= 200; i++)        {            for (int j = 2; j < num; j++)            {                if(num % j == 0)                {                    temp =1;                    break;                }                           }            if(temp == 1)            {                               temp=0;            }            else            {                System.out.println(num);            }            num++;        }           }----------------------第三题-----------------------------题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方public static void main(String[] args)    {        for (int i = 100; i < 1000; i++)        {            int getNum1 = i/100;            int getNum2 = i/10%10;            int getNum3 = i%10;            if(Math.pow(getNum1, 3)+Math.pow(getNum2, 3)+Math.pow(getNum3, 3)==i)            {                System.out.println(i);            }        }    }----------------------第四题-----------------------------题目:题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5public static void main(String[] args)    {        System.out.println("请输入一个你要分解的数");        Scanner input = new Scanner(System.in);        int n = input.nextInt();        for (int i = 2; i <=n; i++)        {            if(i==n)            {                System.out.println(i);            }            if(n%i == 0)            {                n=n/i;                              System.out.println(i);                i =2; //重新赋值i,让程序重新开始循环            }        }    }----------------------第五题-----------------------------题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。   。  public static void main(String[] args)    {        System.out.println("请输入你的成绩");        Scanner input = new Scanner(System.in);        int getScore = input.nextInt();        if(getScore>90)        {            System.out.println("A");        }        else if(getScore>60 && getScore<=89)        {            System.out.println("B");        }        else if(getScore < 60)        {            System.out.println("C");        }    }----------------------第六题---------------------------题目:输入两个正整数m和n,求其最大公约数和最小公倍数。public static void main(String[] args)    {        System.out.println("请输入两个数:");        Scanner input  = new Scanner(System.in);        int getNum1 = input.nextInt();        int getNum2 = input.nextInt();        if(getNum1!=0 && getNum2 !=0)        {            do            {                if(getNum1>getNum2)                {                    int temp =0;                    temp = getNum2;                    getNum2 = getNum1/getNum2;                    getNum1 = temp;                                 }                if(getNum1<getNum2)                {                    int temp =0;                    temp = getNum1;                    getNum1 = getNum2/getNum1;                    getNum2 = temp;                                 }            }            while(getNum2==0 || getNum1 ==0);            System.out.println(getNum1);        }    }----------------------第七题---------------------------题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 public static void main(String[] args)    {        Scanner input = new Scanner(System.in);        System.out.println("请输入一个字符串:");        String getStr = input.nextLine();        int Blank = 0,Digit = 0,Letter = 0,Other = 0;        for (int i = 0; i < getStr.length(); i++)        {            char c = getStr.charAt(i);            if(c == ' ')            {                Blank++;            }            else if(Character.isDigit(c))            {                Digit++;            }            else if(Character.isLetter(c))            {                Letter++;            }            else            {                Other++;            }        }        System.out.println("此字符串共有"+Blank+"个空格!");        System.out.println("此字符串共有"+Digit+"个数字!");        System.out.println("此字符串共有"+Letter+"个字母!");        System.out.println("其他字符有"+Other+"个");    }----------------------第十题---------------------------题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在     第10次落地时,共经过多少米?第10次反弹多高? public static void main(String[] args)    {        double x=100;        double s =0;        for (int i = 0; i < 10; i++)        {                    s = s+x*2;                    x=x/2;        }        System.out.println("答:共经过"+(s-100)+"米");        System.out.println("答:反弹的高度为"+x+"米");    }----------------------第十一题---------------------------题目:有1234四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?   public static void main(String[] args)    {        int s[] ={1,2,3,4};        int num1 = 0,num2 =0,num3 =0;        for (int i = 0; i < s.length; i++)        {            num1 =s[i];            for (int j = 0; j < s.length; j++)            {                num2 = s[j];                if(num2==num1)                {                    continue;                }                for (int j2 = 0; j2 < s.length; j2++)                {                    num3 = s[j2];                    if(num3==num1)                    {                        continue;                    }                    if(num3==num2)                    {                        continue;                    }                    System.out.print(num1);                    System.out.print(num2);                    System.out.print(num3);                    System.out.println();                }            }        }    }----------------------第十二题---------------------------题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总数?   public static void main(String[] args)    {         long i;         double bonus,bon1,bon2,bon3,bon4,bon5;         bon1 = 100000*0.1;         bon2=bon1+100000*0.075;         bon3=bon2+200000*0.05;         bon4=bon3+200000*0.03;         bon5=bon4+400000*0.015;         System.out.println("请输入利润i:");         Scanner input = new Scanner(System.in);         i=input.nextLong();         if(i<=100000)                  bonus=i*0.1;         else if(i<=200000)             bonus=bon1+(i-100000)*0.075;         else if(i<=400000)             bonus=bon2+(i-200000)*0.05;         else if(i<=600000)             bonus=bon3+(i-400000)*0.03;         else if(i<=1000000)             bonus=bon4+(i-600000)*0.015;         else                   bonus=bon5+(i-1000000)*0.01;         System.out.println("奖金是"+bonus);    }----------------------第十三题---------------------------题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?   for(int i=1;i<100000;i++)        {            //判断开平方根出来的数小数部分是否为0,               if(Math.sqrt((i+100))%1==0 && Math.sqrt((i+100+168))%1==0)              {                  System.out.println(i);              }          }----------------------第十四题---------------------------题目:输入某年某月某日,判断这一天是这一年的第几天?   public static void main(String[] args)    {                   int y,m,d;              int sum=0;              int feb=28;              Scanner in = new Scanner(System.in);              System.out.print("请输入年份:");              y = in.nextInt();              System.out.print("请输入月份:");              m = in.nextInt();              System.out.print("请输入几号:");              d = in.nextInt();              if((y%4==0 && y%100!=0) || y%400==0)              {                  feb = 29;              }              switch(m)                  {                          case 1:                              sum = d;                              break;                          case 2:                              sum = 31 + d;                              break;                          case 3:                              sum = 31+feb+d;                              break;                          case 4:                              sum = 31+feb+31+d;                              break;                          case 5:                              sum = 31+feb+31+30+d;                              break;                          case 6:                              sum = 31+feb+31+30+31+d;                              break;                          case 7:                              sum = 31+feb+31+30+31+30+d;                              break;                          case 8:                              sum = 31+feb+31+30+31+30+31+d;                              break;                          case 9:                              sum = 31+feb+31+30+31+30+31+31+d;                              break;                          case 10:                              sum = 31+feb+31+30+31+30+31+31+30+d;                              break;                          case 11:                              sum = 31+feb+31+30+31+30+31+31+30+31+d;                              break;                          case 12:                              sum = 31+feb+31+30+31+30+31+31+30+31+30+d;              }              System.out.println(y+" 年 "+m+" 月 " + d + "号是今年的第"+sum+"天");    }----------------------第十五题---------------------------题目:输入三个整数x,y,z,请把这三个数由小到大输出。public static void main(String[] args)    {                   int getNum[] = new int[3];            Scanner input = new Scanner(System.in);            for (int i = 0; i < 3; i++)            {                System.out.println("请输入第"+(i+1)+"个数");                getNum[i]= input.nextInt();            }            for (int i = 0; i < getNum.length; i++)            {                for (int j = i+1; j < getNum.length; j++)                {                    if(getNum[i]>getNum[j])                    {                        int temp;                        temp =getNum[i];                        getNum[i] = getNum[j];                        getNum[j] = temp;                    }                }            }            System.out.print("x,y,z:由小到大排列为:");            for (int i = 0; i < getNum.length; i++)            {                System.out.print(getNum[i]+"   ");            }    }----------------------第十六题---------------------------题目:输出9*9口诀。 public static void main(String[] args)    {        for (int i = 1; i <10; i++)        {            for (int j = i; j <10; j++)            {                System.out.print(i+"*"+j+"="+i*j+"   ");            }            System.out.println("");        }    }----------------------第十七题---------------------------题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个     第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下     的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 public static void main(String[] args)    {        int n = 1;        for (int i = 1; i <= 10; i++)        {                       n = n*2+1;        }        System.out.println(n);    }----------------------第十八题---------------------------题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。public static void main(String[] args)    {        String[] temp1 = {"a","b","c"};              String[] temp2 =  {"x","y","z"};          for (int i = 0; i < temp1.length; i++)        {            for (int j = 0; j < temp2.length; j++)            {                if(i==0 && j ==0)                {                    continue;                }                else if((i==2&&j==0)||(i==2&&j==2))                  {                    continue;                }                else                 {                    System.out.println( temp1[i] + "   " + temp2[j]);                }            }        }    }----------------------第十九题---------------------------题目:打印出如下图案(菱形)      *     ***    *****   *******    *****     ***      *   public static void main(String[] args)    {        for (int i = 0; i < 4; i++)        {            for (int j = 4; j > i+1; j--)            {                System.out.print(" ");            }            for (int j = 0; j < 2*i +1; j++)            {                System.out.print("*");            }            System.out.println("");        }        for (int i = 0; i < 3; i++)        {            for (int j = i+1; j > 0; j--)            {                System.out.print(" ");            }            for (int j = 5-(i*2); j > 0; j--)            {                System.out.print("*");            }            System.out.println("");        }    }----------------------第二十题---------------------------题目:有一分数序列:2/13/25/38/513/821/13...求出这个数列的前20项之和。public static void main(String[] args)    {        double sum = 0; // 和的变量           double a = 1.0; // 分母           double b = 2.0; // 分子          for (int i = 1; i <= 20; i++)        {            sum = sum + b/a;            double c = a;             b = a+b;            a = c;        }        System.out.println(sum);    }----------------------第二十一题---------------------------题目:求1+2!+3!+...+20!的和   public static void main(String[] args)    {        int sub = 0; //和的变量           for(int i = 1; i <=20; i++)          {              int multiplySub =1; // 定义每个数的累乘               for (int j = i; j >=1; j--)              {                   multiplySub = multiplySub * j; //每个数的累乘的结果               }              sub = multiplySub + sub; //所有数累乘后相加的结果           }          System.out.println(sub);      }----------------------第二十二题---------------------------题目:利用递归方法求5!public static void main(String[] args)        {             int x = 5;                int result = Sub(x);             System.out.println("" + x + "! = " + result);        }         public static int Sub(int x)          { /*阶乘算法*/               if (x > 1)                return (x * Sub(x - 1)); /*递归*/            else                    return 1;         }----------------------第二十三题---------------------------题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?public static void main(String[] args)        {            int yearold = 10;            for (int i = 1; i < 5; i++)            {                               yearold = yearold +2;            }            System.out.println("第五个人的年龄是:"+yearold);        } ----------------------第二十四题---------------------------   题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 public static void main(String[] args)        {            char solvgetNum[] = new char [5];            System.out.println("请输入一个不多于5位的正整数:");            Scanner input =  new Scanner(System.in);            String getNum = input.next();            System.out.println(getNum.length());            for (int i = 0; i < getNum.length(); i++)            {                solvgetNum[i] = getNum.charAt(i);            }            for (int i = getNum.length()-1; i >= 0; i--)            {                System.out.println(solvgetNum[i]);            }               } ----------------------第二十五题---------------------------    题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。public static void main(String args[])    {        int[] GetNum = new int[5];        Scanner input =new Scanner(System.in);        int num = input.nextInt();        //万位        GetNum[0] = num/10000;        //千位        GetNum[1] = (num-GetNum[0]*10000)/1000;         //百位        GetNum[2] = (num-GetNum[0]*10000-GetNum[1]*1000)/100;        //十位        GetNum[3] = (num-GetNum[0]*10000-GetNum[1]*1000-GetNum[2]*100)/10;         //个位        GetNum[4] = (num-GetNum[0]*10000-GetNum[1]*1000-GetNum[2]*100-GetNum[3]*10)/1;        if(GetNum[0]+2==GetNum[1]+1&&GetNum[2]==GetNum[1]+1&&GetNum[2]==(GetNum[3]+1)&&(GetNum[3]+1)==(GetNum[4]+2))        {            System.out.println("是回文数");        }        else        {            System.out.println("不是回文数");        }    } ----------------------第二十六题---------------------------   题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续   判断第二个字母。public static void main(String args[])    {        System.out.println("请输入星期几的字母");        Scanner input = new Scanner(System.in);        String getDay = input.next();        char getDayFirst1 = getDay.charAt(0);        switch (getDayFirst1)        {        case 'y':            System.out.println("今天是星期一");            break;        case 'e':            System.out.println("今天是星期二");            break;        case 's':            char getDayFirst2 = getDay.charAt(1);            if(getDayFirst2 == 'a')            {                System.out.println("今天是星期三");            }            else if(getDayFirst2 == 'i')            {                System.out.println("今天是星期四");            }            else            {                System.out.println("你的输入有误");            }            break;        case 'w':            System.out.println("今天是星期五");            break;        case 'l':            System.out.println("今天是星期六");            break;        case 't':            System.out.println("今天是星期天");            break;        default:            System.out.println("你的输入有误");            break;        }    }----------------------第二十七题---------------------------   题目:求100之内的素数public static void main(String[] args)    {        int num = 1;        int temp = 0;        for (int i = 101; i <= 200; i++)        {            for (int j = 2; j < num; j++)            {                if(num % j == 0)                {                    temp =1;                    break;                }                           }            if(temp == 1)            {                               temp=0;            }            else            {                System.out.println(num);            }            num++;        }       }  ----------------------第二十八题---------------------------   题目:对10个数进行排序 public static void main(String[] args)          {                   Scanner input = new Scanner(System.in);         int s[] = new int[10];         for (int i = 0; i < s.length; i++)         {            System.out.println("请输入第"+(i+1)+"个数");            s[i] = input.nextInt();         }         for (int i = 0; i < s.length; i++)        {            for (int j = i+1; j < s.length; j++)            {                if(s[i]>s[j])                {                    int temp;                    temp = s[i];                    s[i] = s[j];                    s[j] = temp;                }            }        }         for (int i = 0; i < s.length; i++)        {            System.out.println(s[i]);        }     }----------------------第三十一题---------------------------   题目:对10个数进行排序public static void main(String[] args)          {                   int s[] = {1,2,3,4,5,6,7,8,9,10};         for (int i= s.length-1; i >=0; i--)        {            System.out.println(s[i]);        }     }----------------------第三十三题---------------------------   题目:打印出杨辉三角形(要求打印出10行如下图) public static void main(String[] args)          {            int i,j;            int a[][] = new int[10][10];            for(i=0;i<10;i++)            {                    a[i][i]=1;                    a[i][0]=1;             }            for(i=2;i<10;i++)            {                for(j=1;j<=i-1;j++)                {                    a[i][j]=a[i-1][j-1]+a[i-1][j];                 }            }             for(i=0;i<10;i++)            {                for (int k = i; k < 10; k++)                {                    System.out.print(" ");                }                for(j=0;j<=i;j++)                {                     System.out.print(a[i][j]+" ");                }                System.out.println();            }     }----------------------第三十四题---------------------------    题目:输入3个数a,b,c,按大小顺序输出。public static void main(String[] args)          {         Scanner input = new Scanner(System.in);         int a = input.nextInt();         int b = input.nextInt();         int c = input.nextInt();         if(a>b)         {             int temp = b;             b = a;             a = temp;                }         if(a>c)         {             int temp = a;             a = c;             c = temp;                }         if(b>c)         {             int temp = b;             b = c;             c = temp;                }         System.out.print(a+" ");         System.out.print(b+" ");         System.out.print(c+" " );     }----------------------第三十五题---------------------------    题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。    public static void main(String args[])    {    //定义一个数组    int[] num4 = new int[5];    //从键盘输入5个数    Scanner input = new Scanner(System.in);        System.out.println("请输入5个数");        for (int i = 0; i < num4.length; i++)        {            num4[i] = input.nextInt();        }        //求出这5个数的最大值和最小值        int max = num4[0];        int min = num4[0];        for (int i = 0;i < num4.length; i++)        {            if (num4[i] > max)            {                max = num4[i];            }            if (num4[i] < min)            {                min = num4[i];            }        }        //如果数组中哪个数等于最大值(最小值),这个数就和第一个(最后一个)元素换位子         for (int i = 0; i < num4.length; i++)        {            if(num4[i] == max)            {                int temp1;                temp1 = num4[i];                num4[i] = num4[0];                num4[0] = temp1;            }            if (num4[i] == min)            {                int temp2;                temp2 = num4[i];                num4[i] = num4[4];                num4[4] = temp2;            }        }        //输出交换后的数              System.out.println("交换后");        for (int i = 0; i < num4.length; i++)        {            System.out.println(num4[i]);        }    }----------------------第三十八题---------------------------    题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。public static void main(String[] args)          {         Scanner input = new Scanner(System.in);         String str= input.next();         System.out.println(str.length());     }----------------------第三十九题---------------------------     题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/npublic static void main(String[] args)          {         Scanner input = new Scanner(System.in);         int n= input.nextInt();         double result = 0;         if(n%2==0)         {             for (double i = 2; i <= n; i=i+2)            {                result = result +1/i;            }         }         else if(n%2==1)         {             for (double i = 1; i <= n; i=i+2)                {                    result = result +1/i;                }         }         System.out.println(result);     }----------------------第四十题---------------------------     题目:字符串排序。public static void main(String[] args)    {        String str[] = new String[5];        Scanner input = new Scanner(System.in);        for (int i = 0; i < str.length; i++)        {            System.out.println("请输入第"+(i+1)+"个字符串");            str[i] = input.next();                  }        Arrays.sort(str);        for (int i = 0; i < str.length; i++)        {            System.out.println(str[i]+" ");        }    }----------------------第四十一题---------------------------     题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子? public static void main(String[] args)    {                int i = 4, m, j=0, count;                while(true)         {                       count = 0; m = i;                            for(int k=0;k<5;k++)            {                        j = m/4*5+1; //i代表下一个猴子能够看到的数,j 代表当前猴子能够看到的数                m = j;                 if(j % 4 == 0)                     count++;                 else                     break;             }                if(count == 4)             {                 System.out.println("一开始个数为:"+j);                 break;             }             i += 4;                 }     }----------------------第四十三题---------------------------     题目:求07所能组成的奇数个数。   //组成1位数是4个。//组成2位数是7*4个。//组成3位数是7*8*4个。//组成4位数是7*8*8*4个。//......public static void main(String[] args)    {                Scanner input = new Scanner(System.in);        System.out.println("请输入你要求奇数的位数");        int n = input.nextInt();            if(n == 1)            {                System.out.println(4);            }            else if(n == 2)            {                System.out.println(4*7);            }            else            {                System.out.println(4*7*Math.pow(2,3*(n-2)));            }    }----------------------第四十六题---------------------------     题目:两个字符串连接程序  public static void main(String[] args)    {                String a = "adasdasdasdas";        String b = "fsdfdsfdsfdsfds";        String c = a+b;        System.out.println(c);    }----------------------第四十八题---------------------------     题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。  public static void main(String[] args)    {                Scanner input = new Scanner(System.in);        System.out.println("请输入 一个四位数:");        char c[] = new char[4];        String str = input.next();        for (int i = 0; i < c.length; i++)        {            c[i] = str.charAt(i);            System.out.println(c[i]);        }        int newstr[] = new int[4];        for (int i = 0; i < newstr.length; i++)        {                   newstr[i] = (c[i]+5)%10;        }        int temp;        temp = newstr[0];        newstr[0] = newstr[3];        newstr[3] = temp;        int temp1;        temp1 = newstr[1];        newstr[1] = newstr[2];        newstr[2] = temp1;        for (int i = 0; i < newstr.length; i++)        {            System.out.print(newstr[i]);        }    }----------------------第四十九题---------------------------     题目:计算字符串中子串出现的次数 public static void main(String[] args)    {        Scanner input = new Scanner(System.in);        System.out.println("请输入一个字符串:");        String getStr = input.nextLine();        int Blank = 0,Digit = 0,Letter = 0,Other = 0;        for (int i = 0; i < getStr.length(); i++)        {            char c = getStr.charAt(i);            if(c == ' ')            {                Blank++;            }            else if(Character.isDigit(c))            {                Digit++;u       v                    }            else if(Character.isLetter(c))            {                Letter++;            }            else            {                Other++;            }        }        System.out.println("此字符串共有"+Blank+"个空格!");        System.out.println("此字符串共有"+Digit+"个数字!");        System.out.println("此字符串共有"+Letter+"个字母!");        System.out.println("其他字符有"+Other+"个");    }----------------------第五十题---------------------------     题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,把原有的数据和计算出的平均分数存放在磁盘文件 "stud "中。public static void main(String[] args)    {                String stud[][] =  new String[5][3];        Scanner input = new Scanner(System.in);        for (int i = 0; i < stud.length; i++)        {            System.out.print("请输入第"+(i+1)+"个同学的名字:");            String name = input.next();            for (int j = 0; j < 3; j++)            {                System.out.print("请输入"+name+"同学的第"+(j+1)+"门课的成绩:");                stud[i][j] = input.next();            }        }        for (int i = 0; i < stud.length; i++)        {            double avg  = 0;            for (int j = 0; j < 3; j++)            {                System.out.print(stud[i][j]+" ");                avg= avg + Integer.parseInt(stud[i][j]);            }            System.out.print(avg/3);            System.out.println("");        }    }
2 0
原创粉丝点击