JAVA基礎編程代碼50個


【程序1】

題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子對數為多少?

程序分析: 兔子的規律為數列1,1,2,3,5,8,13,21....

public class Prog1{

?????? public static void main(String[] args){

????????????? int n = 10;

????????????? System.out.println("第"+n+"個月兔子總數為"+fun(n));

?????? }

?????? private static int fun(int n){

????????????? if(n==1 || n==2)

????????????? ?? return 1;

????????????? else

????????????? ?? return fun(n-1)+fun(n-2);

?????? }

}

【程序2】

題目:判斷101-200之間有多少個素數,并輸出所有素數。

程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。

public class Prog2{

??? public static void main(String[] args){

??????? int m = 1;

??????? int n = 1000;

??????? int count = 0;

??????? //統計素數個數

??????? for(int i=m;i<n;i++){

??????????? if(isPrime(i)){

??????????????? count++;

??????????????? System.out.print(i+" ");

??????????????? if(count%10==0){

??????????????????? System.out.println();

??????????????? }

??????????? }

??????? }

??????? System.out.println();

??????? System.out.println("在"+m+"和"+n+"之間共有"+count+"個素數");

??? }

??? //判斷素數

??? private static boolean isPrime(int n){

??????? boolean flag = true;

??????? if(n==1)

??????? ? flag = false;

??????? else{

??????????? for(int i=2;i<=Math.sqrt(n);i++){

??????????? if((n%i)==0 || n==1){

??????????????? flag = false;

??????????????? break;

??????????? }

??????????? ?else

??????????? ?? flag = true;

??????? ? }

??????? }

??????? return flag;

??? }

}

【程序3】

題目:打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等于該數本身。例如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。

程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。

public class Prog3{

??? public static void main(String[] args){

??????? for(int i=100;i<1000;i++){

??????????? if(isLotus(i))

??????????? ?? System.out.print(i+" ");

??????? }

??????? System.out.println();

??? }

??? //判斷水仙花數

??? private static boolean isLotus(int lotus){

??????? int m = 0;

??????? int n = lotus;

??????? int sum = 0;

??????? m = n/100;

??????? n? -= m*100;

??????? sum = m*m*m;

??????? m = n/10;

??????? n -= m*10;

??????? sum += m*m*m + n*n*n;

??????? if(sum==lotus)

??????????? return true;

??????? else

??????????? return false;

??????? }

}

【程序4】

題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。

程序分析:對n進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成:

(1)如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。

(2)如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數n,重復執行第一步。

(3)如果n不能被k整除,則用k+1作為k的值,重復執行第一步。

public class Prog4{

??? public static void main(String[] args){

??????? int n = 13;

??????? decompose(n);

??? }

??? private static void decompose(int n){

??????? System.out.print(n+"=");

??????? for(int i=2;i<n+1;i++){

??????????? while(n%i==0 && n!=i){

??????????????? n/=i;

??????????????? System.out.print(i+"*");

??????????? }

??????????? if(n==i){

??????????????? System.out.println(i);

??????????????? break;

??????????? }

??????? }

??? }

}

【程序5】

題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。

程序分析:(a>b)?a:b這是條件運算符的基本例子。

public class Prog5{

?????? public static void main(String[] args){

????????????? int n = -1;

????????????? try{

???????????????????? n = Integer.parseInt(args[0]);

????????????? }catch(ArrayIndexOutOfBoundsException e){

???????????????????? System.out.println("請輸入成績");

???????????????????? return;

????????????? }

????????????? grade(n);

?????? }

?????? //成績等級計算

?????? private static void grade(int n){

????????????? if(n>100 || n<0)

????????????? ? System.out.println("輸入無效");

????????????? else{

????????????? ? String str = (n>=90)?"分,屬于A等":((n>60)?"分,屬于B等":"分,屬于C等");

????????????? ? System.out.println(n+str);

????????????? }

?????? }

}

【程序6】

題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數。

程序分析:利用輾除法。

public class Prog6{

??? public static void main(String[] args){

??????? int m,n;

??????? try{

??????????? m = Integer.parseInt(args[0]);

??????????? n = Integer.parseInt(args[1]);

??????? }catch(ArrayIndexOutOfBoundsException e){

??????????? System.out.println("輸入有誤");

??????????? return;

??????? }

??????? max_min(m,n);

??? }

??? //求最大公約數和最小公倍數

??? private static void max_min(int m, int n){

??????? int temp = 1;

??????? int yshu = 1;

??????? int bshu = m*n;

??????? if(n<m){

??????????? temp = n;

??????????? n = m;

??????????? m = temp;

??????? }

??????? while(m!=0){

??????????? temp = n%m;

??????????? n = m;

??????????? m = temp;

??????? }

??????? yshu = n;

??????? bshu /= n;

??????? System.out.println(m+"和"+n+"的最大公約數為"+yshu);

??????? System.out.println(m+"和"+n+"的最小公倍數為"+bshu);

??? }

}

【程序7】

題目:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。

程序分析:利用while語句,條件為輸入的字符不為'\n'.

import java.util.Scanner;

public class Prog7_1{

??? public static void main(String[] args){

??????? System.out.print("請輸入一串字符:");

??????? Scanner scan = new Scanner(System.in);

??????? String str = scan.nextLine();//將一行字符轉化為字符串

??????? scan.close();

??????? count(str);

??? }

??? //統計輸入的字符數

??? private static void count(String str){

??????? String E1 = "[\u4e00-\u9fa5]";//漢字

??????? String E2 = "[a-zA-Z]";

??????? String E3 = "[0-9]";

??????? String E4 = "\\s";//空格

??????? int countChinese = 0;

??????? int countLetter = 0;

??????? int countNumber = 0;

??????? int countSpace = 0;

??????? int countOther = 0;

??????? char[] array_Char = str.toCharArray();//將字符串轉化為字符數組

??????? String[] array_String = new String[array_Char.length];//漢字只能作為字符串處理

??????? for(int i=0;i<array_Char.length;i++)

??????? ? array_String[i] = String.valueOf(array_Char[i]);

??????? //遍歷字符串數組中的元素

??????? for(String s:array_String){

??????????? if(s.matches(E1))

??????????? ? countChinese++;

??????????? else if(s.matches(E2))

??????????? ? countLetter++;

??????????? else if(s.matches(E3))

??????????? ? countNumber++;

??????????? else if(s.matches(E4))

??????????? ? countSpace++;

??????????? else

??????????? ? countOther++;

??????? }

??????? System.out.println("輸入的漢字個數:"+countChinese);

??????? System.out.println("輸入的字母個數:"+countLetter);

??????? System.out.println("輸入的數字個數:"+countNumber);

??????? System.out.println("輸入的空格個數:"+countSpace);

??????? System.out.println("輸入的其它字符個數:"+countSpace);

??? }

}

import java.util.*;

public class Prog7_2{

??? public static void main(String[] args){

??? ? System.out.println("請輸入一行字符:");

??? ? Scanner scan = new Scanner(System.in);

??? ? String str = scan.nextLine();

??? ? scan.close();

??? ? count(str);

??? }

??? //統計輸入的字符

??? private static void count(String str){

??????? List<String> list = new ArrayList<String>();

??????? char[] array_Char = str.toCharArray();

??????? for(char c:array_Char)

??????? ? list.add(String.valueOf(c));//將字符作為字符串添加到list表中

??????? Collections.sort(list);//排序

??????? for(String s:list){

??????????? int begin = list.indexOf(s);

??????????? int end = list.lastIndexOf(s);

??????????? //索引結束統計字符數

??????????? if(list.get(end)==s)

??????????? ? System.out.println("字符‘"+s+"’有"+(end-begin+1)+"個");

??????? }

??? }

}

【程序8】

題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。

程序分析:關鍵是計算出每一項的值。

import java.util.Scanner;

?

public class Prog8{

??? public static void main(String[] args){

??????? System.out.print("求s=a+aa+aaa+aaaa+...的值,請輸入a的值:");

??????? Scanner scan = new Scanner(System.in).useDelimiter("\\s*");//以空格作為分隔符

??????? int a = scan.nextInt();

??????? int n = scan.nextInt();

??????? scan.close();//關閉掃描器

??????? System.out.println(expressed(2,5)+add(2,5));

??? }

??? //求和表達式

??? private static String expressed(int a,int n){

??????? StringBuffer sb = new StringBuffer();

??????? StringBuffer subSB = new StringBuffer();

??????? for(int i=1;i<n+1;i++){

??????? ? subSB = subSB.append(a);

??????? ? sb = sb.append(subSB);

??????? ? if(i<n)

??????? ??? sb = sb.append("+");

??????? }

??????? sb.append("=");

??????? return sb.toString();

??? }

??? //求和

??? private static long add(int a,int n){

??????? long sum = 0;

??????? long subSUM = 0;

??????? for(int i=1;i<n+1;i++){

??????????? subSUM = subSUM*10+a;

??????????? sum = sum+subSUM;

??????? }

??????? return sum;

??? }

}

【程序9】

題目:一個數如果恰好等于它的因子之和,這個數就稱為"完數"。例如6=1+2+3.編程找出1000以內的所有完數。

public class Prog9{

??? public static void main(String[] args){

??????? int n = 10000;

??????? compNumber(n);

??? }

??? //求完數

??? private static void compNumber(int n){

??????? int count = 0;

??????? System.out.println(n+"以內的完數:");

??????? for(int i=1;i<n+1;i++){

??????????? int sum = 0;

??????????? for(int j=1;j<i/2+1;j++){

??????????????? if((i%j)==0){

??????????????????? sum += j;

??????????????????? if(sum==i){

??????????????? ? System.out.print(i+" ");

??????????????? ? if((count++)%5==0)

??????????????? ??? System.out.println();

??????????? ??? }

??????????????? }

??????????? }

??????? }

??? }

}

【程序10】

題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時,共經過多少米?第10次反彈多高?

import java.util.Scanner;

public class Prog10{

??? public static void main(String[] args){

??????? System.out.print("請輸入小球落地時的高度和求解的次數:");

??????? Scanner scan = new Scanner(System.in).useDelimiter("\\s");

??????? int h = scan.nextInt();

??????? int n = scan.nextInt();

??????? scan.close();

??????? distance(h,n);

??? }

??? //小球從h高度落下,經n次反彈后經過的距離和反彈的高度

??? private static void distance(int h,int n){

??????? double length = 0;

??????? for(int i=0;i<n;i++){

??????????? length += h;

??????????? h /=2.0 ;

??????? }

??????? System.out.println("經過第"+n+"次反彈后,小球共經過"+length+"米,"+"第"+n+"次反彈高度為"+h+"米");

??? }

}

【程序11】

題目:有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?

程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。

public class Prog11{

??? public static void main(String[] args){

??????? int count = 0;

??????? int n = 0;

??????? for(int i=1;i<5;i++){

??????????? for(int j=1;j<5;j++){

??????????????? if(j==i)

??????????????? ? continue;

??????????????? for(int k=1;k<5;k++){

??????????????????? if(k!=i && k!=j){

??????????????????????? n = i*100+j*10+k;

??????????????????? ? System.out.print(n+" ");

??????????????????? ? if((++count)%5==0)

??????????????????? ? System.out.println();

??????????????????? }

??????????????? }

??????????? }

??????? }

??????? System.out.println();

??????? System.out.println("符合條件的數共:"+count+"個");

??? }

}

【程序12】

題目:企業發放的獎金根據利潤提成。利潤(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%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?

程序分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。

import java.io.*;

public class Prog12{

??? public static void main(String[] args){

??????? System.out.print("請輸入當前利潤:");

??????? long profit = Long.parseLong(key_Input());

??????? System.out.println("應發獎金:"+bonus(profit));

??? }

??? //接受從鍵盤輸入的內容

??? private static String key_Input(){

??????? String str = null;

??????? BufferedReader bufIn = new BufferedReader(new InputStreamReader(System.in));

??????? try{

??????????? str = bufIn.readLine();

??????? }catch(IOException e){

??????????? e.printStackTrace();

??????? }finally{

??????????? try{

??????????????? bufIn.close();

??????????? }catch(IOException e){

??????????????? e.printStackTrace();

??????????? }

??????? }

??????? return str;

??? }

??? //計算獎金

??? private static long bonus(long profit){

??????? long prize = 0;

??????? long profit_sub = profit;

??????? if(profit>1000000){

??????????? profit = profit_sub-1000000;

??????????? profit_sub = 1000000;

??????????? prize += profit*0.01;

??????? }

??????? if(profit>600000){

??????????? profit = profit_sub-600000;

??????????? profit_sub = 600000;

??????????? prize += profit*0.015;

??????? }

??????? if(profit>400000){

??????????? profit = profit_sub-400000;

??????????? profit_sub = 400000;

??????????? prize += profit*0.03;

??????? }

??????? if(profit>200000){

??????????? profit = profit_sub-200000;

??????????? profit_sub = 200000;

??????????? prize += prize*0.05;

??????? }

??????? if(profit>100000){

??????????? profit = profit_sub-100000;

??????????? profit_sub = 100000;

??????????? prize += profit*0.075;

??????? }

??????? prize += profit_sub*0.1;

??????? return prize;

??? }

}

?

【程序13】

題目:一個整數,它加上100后是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?

程序分析:在10萬以內判斷,先將該數加上100后再開方,再將該數加上268后再開方,如果開方后的結果滿足如下條件,即是結果。

public class Prog13{

??? public static void main(String[] args){

??????? int n=0;

??????? for(int i=0;i<100001;i++){

??????????? if(isCompSqrt(i+100) && isCompSqrt(i+268)){

??????????????? n = i;

??????????????? break;

??????????? }

??????? }

??????? System.out.println("所求的數是:"+n);

??? }

??? //判斷完全平方數

??? private static boolean isCompSqrt(int n){

??????? boolean isComp = false;

??????? for(int i=1;i<Math.sqrt(n)+1;i++){

??????????? if(n==Math.pow(i,2)){

??????????????? isComp = true;

??????????????? break;

??????????? }

??????? }

??????? return isComp;

??? }

}

【程序14】

題目:輸入某年某月某日,判斷這一天是這一年的第幾天?

程序分析:以3月5日為例,應該先把前兩個月的加起來,然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時需考慮多加一天。

import java.util.Scanner;

public class Prog14{

??? public static void main(String[] args){

??????? Scanner scan = new Scanner(System.in).useDelimiter("\\D");//匹配非數字

??????? System.out.print("請輸入當前日期(年-月-日):");

??????? int year = scan.nextInt();

??????? int month = scan.nextInt();

??????? int date = scan.nextInt();

??????? scan.close();

??????? System.out.println("今天是"+year+"年的第"+analysis(year,month,date)+"天");

??? }

??? //判斷天數

??? private static int analysis(int year, int month, int date){

??????? int n = 0;

??????? int[] month_date = new int[] {0,31,28,31,30,31,30,31,31,30,31,30};

??????? if((year%400)==0 || ((year%4)==0)&&((year%100)!=0))

??????? ? month_date[2] = 29;

??????? for(int i=0;i<month;i++)

??????? ? n += month_date[i];

??????? return n+date;

??? }

}

【程序15】

題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。

程序分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,然后再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。

import java.util.Scanner;

public class Prog15{

??? public static void main(String[] args){

??????? Scanner scan = new Scanner(System.in).useDelimiter("\\D");

??????? System.out.print("請輸入三個數:");

??????? int x = scan.nextInt();

??????? int y = scan.nextInt();

??????? int z = scan.nextInt();

??????? scan.close();

??????? System.out.println("排序結果:"+sort(x,y,z));

??? }

??? //比較兩個數的大小

??? private static String sort(int x,int y,int z){

??????? String s = null;

??????? if(x>y){

??????????? int t = x;

??????????? x = y;

??????????? y = t;

??????? }

??????? if(x>z){

??????????? int t = x;

??????????? x = z;

??????????? z = t;

??????? }

??????? if(y>z){

??????????? int t = z;

??????????? z = y;

??????????? y = t;

??????? }

??????? s = x+" "+y+" "+z;

??????? return s;

??? }

}

【程序16】

題目:輸出9*9口訣。

程序分析:分行與列考慮,共9行9列,i控制行,j控制列。

public class Prog16{

??? public static void main(String[] args){

??????? for(int i=1;i<10;i++){

??????????? for(int j=1;j<i+1;j++)

??????????????? System.out.print(j+"*"+i+"="+(j*i)+" ");

??????????? System.out.println();

??????? }

??? }

}

【程序17】

題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。

程序分析:采取逆向思維的方法,從后往前推斷。

public class Prog17{

??? public static void main(String[] args){

??????? int m = 1;

??? ? for(int i=10;i>0;i--)

??? ??? m = 2*m + 2;

??? ? System.out.println("小猴子共摘了"+m+"桃子");

??? }

}

【程序18】

題目:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。

import java.util.ArrayList;

public class Prog18{

??? String a,b,c;//甲隊成員

??? public static void main(String[] args){

??????? String[] racer = {"x","y","z"};//乙隊成員

??????? ArrayList<Prog18> arrayList = new ArrayList<Prog18>();

??????? for(int i=0;i<3;i++)

??????? ? for(int j=0;j<3;j++)

??????? ??? for(int k=0;k<3;k++){

??????? ??? ??? Prog18 prog18 = new Prog18(racer[i],racer[j],racer[k]);

??????? ??? ??? if(!prog18.a.equals(prog18.b) && !prog18.a.equals(prog18.c) && !prog18.b.equals(prog18.c) &&

??????? ??? ??? ???!prog18.a.equals("x") && !prog18.c.equals("x") && !prog18.c.equals("z"))

??????? ??? ??? ???arrayList.add(prog18);

??????? ??? }

??????? ? for(Object obj:arrayList)

??????? ??? System.out.println(obj);

??? }

??? //構造方法

??? private Prog18(String a,String b,String c){

??????? this.a = a;

??????? this.b = b ;

??????? this.c = c;

??? }

??? public String toString(){

??????? return "a的對手是"+a+"? "+"b的對手是"+b+"? "+"c的對手是"+c;

??? }

}

【程序19】

題目:打印出如下圖案(菱形)

???*

?? ***

?******

********

?******

? ***

?? *

程序分析:先把圖形分成兩部分來看待,前四行一個規律,后三行一個規律,利用雙重 for循環,第一層控制行,第二層控制列。

public class Prog19{

??? public static void main(String[] args){

??????? int n = 5;

??????? printStar(n);

??? }

??? //打印星星

??? private static void printStar(int n){

??????? //打印上半部分

??????? for(int i=0;i<n;i++){

??????????? for(int j=0;j<2*n;j++){

??????? ? ? if(j<n-i)

??????? ? ? ??System.out.print(" ");

??????? ? ? if(j>=n-i && j<=n+i)

??????? ? ? ??System.out.print("*");

??????? ? }

??????? ? System.out.println();

??????? }

??????? //打印下半部分

??????? for(int i=1;i<n;i++){

??????????? System.out.print(" ");

??????????? for(int j=0;j<2*n-i;j++){

??????????????? if(j<i)

??????? ? ? ??System.out.print(" ");

??????? ? ? if(j>=i && j<2*n-i-1)

??????? ? ? ??System.out.print("*");

??????????? }

??????????? System.out.println();

??????? }

??? }

}

【程序20】

題目:有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和。

程序分析:請抓住分子與分母的變化規律。

public class Prog20{

??? public static void main(String[] args){

??????? double n1 = 1;

??????? double n2 = 1;

??????? double fraction = n1/n2;

??????? double Sn = 0;

??????? for(int i=0;i<20;i++){

??????? ? double t1 = n1;

??????? ? double t2 = n2;

??????? ? n1 = t1+t2;

??????? ? n2 = t1;

??????? ? fraction = n1/n2;

??????? ? Sn += fraction;

??????? }

??????? System.out.print(Sn);

??? }

}

【程序21】

題目:求1+2!+3!+...+20!的和

程序分析:此程序只是把累加變成了累乘。

public class Prog21{

??? public static void main(String[] args){

??????? long sum = 0;

??????? for(int i=0;i<20;i++)

??????? ? sum += factorial(i+1);

??????? System.out.println(sum);

??? }

??? //階乘

??? private static long factorial(int n){

??????? int mult = 1;

??????? for(int i=1;i<n+1;i++)

??????? ? mult *= i;

??????? return mult;

??? }

}

【程序22】

題目:利用遞歸方法求5!。

程序分析:遞歸公式:fn=fn_1*4!

public class Prog22{

??? public static void main(String[] args){

??????? System.out.println(fact(10));

??? }

??? //遞歸求階乘

??? private static long fact(int n){

??????? if(n==1)

??????? ? return 1;

??????? else

??????? ? return fact(n-1)*n;

??? }

}

【程序23】

題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后問第一個人,他說是10歲。請問第五個人多大?

程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個階段。要想知道第五個人歲數,需知道第四人的歲數,依次類推,推到第一人(10歲),再往回推。

public class Prog23{

??? public static void main(String[] args){

??????? System.out.println(getAge(5,2));

??? }

??? //求第m位同志的年齡

??? private static int getAge(int m,int n){

??????? if(m==1)

??????? ? return 10;

??????? else

??????? ? return getAge(m-1,n)+n;??????

??? }

}

【程序24】

題目:給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。

public class Prog24{

??? public static void main(String[] args){

??????? int n = Integer.parseInt(args[0]);

??????? int i = 0;

??????? int[] a = new int[5];

??????? do{

??????????? a[i] = n%10;

??????? ? n /= 10;

??????? ? ++i;

??????? }while(n!=0);

??????? System.out.print("這是一個"+i+"位數,從個位起,各位數字依次為:");

??????? for(int j=0;j<i;j++)

??????? ? System.out.print(a[j]+" ");

??? }

}

【程序25】

題目:一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。

import java.io.*;

public class Prog25{

??? public static void main(String[] args){

??????? int n = 0;

??????? System.out.print("請輸入一個5位數:");

??????? BufferedReader bufin = new BufferedReader(new InputStreamReader(System.in));

??????? try{

??????? ? n = Integer.parseInt(bufin.readLine());

??????? }catch(IOException e){

??????????? e.printStackTrace();

??????? }finally{

??????????? try{

??????????? ? bufin.close();

??????????? }catch(IOException e){

??????????????? e.printStackTrace();

??????????? }

??????? }

??????? palin(n);

??? }

??? private static void palin(int n){

??????? int m = n;

??????? int[] a = new int[5];

??????? if(n<10000 || n>99999){

??????????? System.out.println("輸入的不是5位數!");

??????????? return;

??????? }else{

??????? ? for(int i=0;i<5;i++){

??????????? ? a[i] = n%10;

??????????? ? n /= 10;

??????? ? }

??????? ? if(a[0]==a[4] && a[1]==a[3])

??????? ??? System.out.println(m+"是一個回文數");

??????? ? else

??????? ??? System.out.println(m+"不是回文數");

??? ??? }

?? }

}

【程序26】

題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續判斷第二個字母。

程序分析:用情況語句比較好,如果第一個字母一樣,則判斷用情況語句或if語句判斷第二個字母。

import java.io.*;

public class Prog26{

??? public static void main(String[] args){

??????? String str = new String();

??? ? BufferedReader bufIn = new BufferedReader(new InputStreamReader(System.in));

??? ? System.out.print("請輸入星期的英文單詞前兩至四個字母):");

??? ? try{

??????? ? str = bufIn.readLine();

??? ? }catch(IOException e){

??????? ? e.printStackTrace();

??? ? }finally{

??????? ? try{

??????????? ? bufIn.close();

??????? ? }catch(IOException e){

??????????? ? e.printStackTrace();

??????? ? }

??? ? }

??? ? week(str);

??? }

??? private static void week(String str){

??????? int n = -1;

??????? if(str.trim().equalsIgnoreCase("Mo") || str.trim().equalsIgnoreCase("Mon") || str.trim().equalsIgnoreCase("Mond"))

??????? ? n = 1;

??????? if(str.trim().equalsIgnoreCase("Tu") || str.trim().equalsIgnoreCase("Tue") || str.trim().equalsIgnoreCase("Tues"))

??????? ? n = 2;

??????? if(str.trim().equalsIgnoreCase("We") || str.trim().equalsIgnoreCase("Wed") || str.trim().equalsIgnoreCase("Wedn"))

??????? ? n = 3;

??????? if(str.trim().equalsIgnoreCase("Th") || str.trim().equalsIgnoreCase("Thu") || str.trim().equalsIgnoreCase("Thur"))

??????? ? n = 4;

??????? if(str.trim().equalsIgnoreCase("Fr") || str.trim().equalsIgnoreCase("Fri") || str.trim().equalsIgnoreCase("Frid"))

??????? ? n = 5;

??????? if(str.trim().equalsIgnoreCase("Sa") || str.trim().equalsIgnoreCase("Sat") || str.trim().equalsIgnoreCase("Satu"))

??????? ? n = 2;

??????? if(str.trim().equalsIgnoreCase("Su") || str.trim().equalsIgnoreCase("Sun") || str.trim().equalsIgnoreCase("Sund"))

??????? ? n = 0;

??????? switch(n){

??????????? case 1:

??????????? ? System.out.println("星期一");

??????????? ? break;

??????????? case 2:

??????????? ? System.out.println("星期二");

??????????? ? break;

??????????? case 3:

??????????? ? System.out.println("星期三");

??????????? ? break;

??????????? case 4:

??????????? ? System.out.println("星期四");

??????????? ? break;

??????????? case 5:

??????????? ? System.out.println("星期五");

??????????? ? break;

??????????? case 6:

??????????? ? System.out.println("星期六");

??????????? ? break;

??????????? case 0:

??????????? ? System.out.println("星期日");

??????????? ? break;

??????????? default:

??????????? ? System.out.println("輸入有誤!");

??????????? ? break;

??????? }

??? }

}

【程序27】

題目:求100之內的素數

public class Prog27{

??? public static void main(String[] args){

??????? int n = 100;

??????? System.out.print(n+"以內的素數:");

??????? for(int i=2;i<n+1;i++){

??????????? if(isPrime(i))

??????????? ? System.out.print(i+" ");

??????? }

??? }

??? //求素數

??? private static boolean isPrime(int n){

??????? boolean flag = true;

??????? for(int i=2;i<Math.sqrt(n)+1;i++)

??????????? if(n%i==0){

??????????? ? flag = false;

??????????? ? break;

??????????? }

??????? return flag;

??? }

}

【程序28】

題目:對10個數進行排序

程序分析:可以利用選擇法,即從后9個比較過程中,選擇一個最小的與第一個元素交換, 下次類推,即用第二個元素與后8個進行比較,并進行交換。

public class Prog28{

??? public static void main(String[] args){

??????? int[] a = new int[]{31,42,21,50,12,60,81,74,101,93};

??????? for(int i=0;i<10;i++)

??????????? for(int j=0;j<a.length-i-1;j++)

??????????????? if(a[j]>a[j+1]){

??????????????????? int temp = a[j];

??????????????????? a[j] = a[j+1];

??????????????????? a[j+1] = temp;

??????????????? }

??????? for(int i=0;i<a.length;i++)

??????? ? System.out.print(a[i]+" ");

??? }

}

【程序29】

題目:求一個3*3矩陣對角線元素之和

程序分析:利用雙重for循環控制輸入二維數組,再將a[i][i]累加后輸出。

public class Prog29{

??? public static void main(String[] args){

??????? int[][] a = new int[][] {{100,2,3,},{4,5,6},{17,8,9}};

??????? matrSum(a);

??? }

??? private static void matrSum(int[][] a){

??????? int sum1 = 0;

??????? int sum2 = 0;

??????? for(int i=0;i<a.length;i++)

??????? ? for(int j=0;j<a[i].length;j++){

??????? ? ? if(i==j) sum1 += a[i][j];

??????? ? ? if(j==a.length-i-1) sum2 += a[i][j];

??????? ? }

??????? System.out.println("矩陣對角線之和分別是:"+sum1+"和"+sum2);

??? }

}

【程序30】

題目:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。

程序分析:首先判斷此數是否大于最后一個數,然后再考慮插入中間的數的情況,插入后此元素之后的數,依次后移一個位置。

import java.util.Scanner;

public class Prog30{

??? public static void main(String[] args){

??????? int[] A = new int[]{0,8,7,5,9,1,2,4,3,12};

??????? int[] B = sort(A);

??????? print(B);

??????? System.out.println();

??????? System.out.print("請輸入10個數的數組:");

??????? Scanner scan = new Scanner(System.in);?????

int a = scan.nextInt();

scan.close();

??????? int[] C = insert(a,B);

??????? print(C);

??? }

??? //選擇排序

??? private static int[] sort(int[] A){

??????? int[] B = new int[A.length];

??????? for(int i=0;i<A.length-1;i++){

??????????? int min = A[i];

??????????? for(int j=i+1;j<A.length;j++){

??????????????? if(min>A[j]){

??????????????????? int temp = min;

??????????????????? min = A[j];

??????????????????? A[j] = temp;

??????????????? }

??????????????? B[i] = min;

??????????? }

??????? }

??????? B[A.length-1] = A[A.length-1];

??????? return B;

??? }

??? //打印

??? private static void print(int[] A){

??????? for(int i=0;i<A.length;i++)

??????? ? System.out.print(A[i]+" ");

??? }

??? //插入數字

??? private static int[] insert(int a,int[] A){

??????? int[] B = new int[A.length+1];

??????? for(int i=A.length-1;i>0;i--)

??????? ? if(a>A[i]){

??????? ? ? B[i+1] = a;

??????? ??? for(int j=0;j<=i;j++)

??????? ????? B[j] = A[j];

??????? ????? for(int k=i+2;k<B.length;k++)

??????? ??????? B[k] = A[k-1];

??????? ????? break;

??????? ? }

??????? return B;

??? }

}

【程序31】

題目:將一個數組逆序輸出。

程序分析:用第一個與最后一個交換。

public class Prog31{

??? public static void main(String[] args){

??????? int[] A = new int[]{1,2,3,4,5,6,7,8,9,};

??????? print(A);

??????? System.out.println();

??????? int[] B = reverse(A);

??????? print(B);

??? }

??? private static int[] reverse(int[] A){

??????? for(int i=0;i<A.length/2;i++){

??????????? int temp = A[A.length-i-1];

??????????? A[A.length-i-1] = A[i];

??????????? A[i] = temp;

??????? }

??????? return A;

??? }

??? private static void print(int[] A){

??????? for(int i=0;i<A.length;i++)

??????? ? System.out.print(A[i]+" ");

??? }

}

【程序32】

題目:取一個整數a從右端開始的4~7位。

程序分析:可以這樣考慮:

(1)先使a右移4位。

(2)設置一個低4位全為1,其余全為0的數。可用~(~0<<4)

(3)將上面二者進行&運算。

import java.util.Scanner;

public class Prog32{

??? public static void main(String[] msg){

??????? //輸入一個長整數

??????? Scanner scan = new Scanner(System.in);

??????? long l = scan.nextLong();

??????? scan.close();

??????? //以下截取字符

??????? String str = Long.toString(l);

??????? char[] ch = str.toCharArray();

??????? int n = ch.length;

??????? if(n<7)

??????? ? System.out.println("輸入的數小于7位!");

??????? else

??????? ? System.out.println("截取的4~7位數字:"+ch[n-7]+ch[n-6]+ch[n-5]+ch[n-4]);

??????? }?? ?

}

【程序33】

題目:打印出楊輝三角形(要求打印出10行如下圖)

程序分析:

???????1

??????1 1

????1 2 1

1 3 3 1

?1 4 6 4 1

1 5 10 10 5 1

public class Prog33{

??? public static void main(String[] args){

??????? int[][] n = new int[10][21];

??????? n[0][10] = 1;

??????? for(int i=1;i<10;i++)

??????? ? for(int j=10-i;j<10+i+1;j++)

??????? ??? n[i][j] = n[i-1][j-1]+n[i-1][j+1];

??????? for(int i=0;i<10;i++){

??????????? for(int j=0;j<21;j++){

??????????????? if(n[i][j]==0)

??????????????? ? System.out.print("?? ");

??????????????? else{

??????????? ??? if(n[i][j]<10)

??????????? ??? ??System.out.print("? "+n[i][j]);//空格為了美觀需要

??????????? ??? else if(n[i][j]<100)

??????????? ????? System.out.print(" "+n[i][j]);

??????????? ????? else

??????????? ??????? System.out.print(n[i][j]);

??????????? ? }

??????????? }

??????????? System.out.println();

??????? }

??? }

}

【程序34】

題目:輸入3個數a,b,c,按大小順序輸出。

程序分析:利用指針方法。

import java.util.Scanner;

public class Prog34{

??? public static void main(String[] args){

??????? System.out.print("請輸入3個數:");

??????? Scanner scan = new Scanner(System.in).useDelimiter("\\s");

??????? int a = scan.nextInt();

??????? int b = scan.nextInt();

??????? int c = scan.nextInt();

??????? scan.close();

??????? if(a<b){

??????????? int t = a;

??????????? a = b;

??????????? b = t;

??????? }

??????? if(a<c){

??????????? int t = a;

??????????? a = c;

??????????? c = t;

??????? }

??????? if(b<c){

??????????? int t = b;

??????????? b = c;

??????????? c = t;

??????? }

??????? System.out.println(a+" "+b+" "+c);

??? }

}

【程序35】

題目:輸入數組,最大的與第一個元素交換,最小的與最后一個元素交換,輸出數組。

import java.util.Scanner;

public class Prog35{

??? public static void main(String[] args){

??????? System.out.print("請輸入一組數:");

??????? Scanner scan = new Scanner(System.in).useDelimiter("\\s");

??????? int[] a = new int[50];

??????? int m = 0;

??????? while(scan.hasNextInt()){

??????????? a[m++] = scan.nextInt();

??????? }

??????? scan.close();

int[] b = new int[m];

??????? for(int i=0;i<m;i++)

??????? ? b[i] = a[i];

??????? for(int i=0;i<b.length;i++)

??????????? for(int j=0;j<b.length-i-1;j++)

??????????????? if(b[j]<b[j+1]){

??????????????????? int temp = b[j];

??????????????????? b[j] = b[j+1];

??????????????????? b[j+1] = temp;

??????????????? }

??????? for(int i=0;i<b.length;i++)

??????? ? System.out.print(b[i]+" ");

?

??? }

}

【程序36】

題目:有n個整數,使其前面各數順序向后移m個位置,最后m個數變成最前面的m個數

import java.util.Scanner;

public class Prog36{

??? public static void main(String[] args){

??????? final int N = 10;

??????? System.out.print("請輸入10個數的數組:");

??????? Scanner scan = new Scanner(System.in);

??????? int[] a = new int[N];

??????? for(int i=0;i<a.length;i++)

??????? ? a[i] = scan.nextInt();

??????? System.out.print("請輸入一個小于10的數:");

??????? int m = scan.nextInt();

??????? scan.close();

??????? int[] b = new int[m];

??????? int[] c = new int[N-m];

??????? for(int i=0;i<m;i++)

??????? ? b[i] = a[i];

??????? for(int i=m,j=0;i<N;i++,j++)

??????? ? c[j] = a[i];

??????? for(int i=0;i<N-m;i++)

??????? ? a[i] = c[i];

??????? for(int i=N-m,j=0;i<N;i++,j++)

??????? ? a[i] = b[j];

??????? for(int i=0;i<a.length;i++)

??????? ? System.out.print(a[i]+" ");

??? }

}

【程序37】

題目:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。

import java.util.Scanner;

public class Prog37{

??? public static void main(String[] args){

??????? System.out.print("請輸入一個整數:");

??????? Scanner scan = new Scanner(System.in);

??????? int n = scan.nextInt();

??????? scan.close();

??????? //定義數組變量標識某人是否還在圈內

??????? boolean[] isIn = new boolean[n];

??????? for(int i=0;i<isIn.length;i++)

??????? ? isIn[i] = true;

??????? //定義圈內人數、報數、索引

??????? int inCount = n;

??????? int countNum = 0;

??????? int index = 0;

??????? while(inCount>1){

??????????? if(isIn[index]){

??????????????? countNum++;

??????????????? if(countNum==3){

??????????????????? countNum = 0;

??????????????????? isIn[index] = false;

??????????????????? inCount--;

??????????????? }

??????????? }

??????????? index++;

??????????? if(index==n)

??????????? ? index = 0;

??????? }

??????? for(int i=0;i<n;i++)

??????? ? if(isIn[i])

??????? ??? System.out.println("留下的是:"+(i+1));

??? }

}

【程序38】

題目:寫一個函數,求一個字符串的長度,在main函數中輸入字符串,并輸出其長度。

import java.util.Scanner;

public class Prog38{

??? public static void main(String[] args){

??????? System.out.print("請輸入一串字符:");

??????? Scanner scan = new Scanner(System.in).useDelimiter("\\n");

??????? String strIn = scan.next();

??????? scan.close();

??????? char[] ch = strIn.toCharArray();

??????? System.out.println(strIn+"共"+(ch.length-1)+"個字符");

??? }

}

【程序39】

題目:編寫一個函數,輸入n為偶數時,調用函數求1/2+1/4+...+1/n,當輸入n為奇數時,調用函數1/1+1/3+...+1/n(利用指針函數)

import java.util.Scanner;

public class Prog39{

??? public static void main(String[] args){

??????? System.out.print("請輸入一個整數:");

??????? Scanner scan = new Scanner(System.in);

??????? int n = scan.nextInt();

??????? scan.close();

??????? if(n%2==0)

??????? ? System.out.println("結果:"+even(n));

??????? else

??????? ? System.out.println("結果:"+odd(n));

??? }

??? //奇數

??? static double odd(int n){

??????? double sum = 0;

??????? for(int i=1;i<n+1;i+=2){

??????????? sum += 1.0/i;

??????? }

??????? return sum;

??? }

??? //偶數

??? static double even(int n){

??????? double sum = 0;

??????? for(int i=2;i<n+1;i+=2){

??????????? sum += 1.0/i;

??????? }

??????? return sum;

??? }

}

【程序40】

題目:字符串排序。

public class Prog40{

??? public static void main(String[] args){

??????? String[] str = {"abc","cad","m","fa","f"};

??????? for(int i=str.length-1;i>=1;i--){

??????????? for(int j=0;j<=i-1;j++){

??????????????? if(str[j].compareTo(str[j+1])<0){

??????????????????? String temp = str[j];

??????????????????? str[j] = str[j+1];

??????????????????? str[j+1] = temp;

??????????????? }

??????????? }

??????? }

??????? for(String subStr:str)

??????? ? System.out.print(subStr+" ");

??? }

}

【程序41】

題目:海灘上有一堆桃子,五只猴子來分。第一只猴子把這堆桃子憑據分為五份,多了一個,這只猴子把多的一個扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,問海灘上原來最少有多少個桃子?

public class Prog41{

??? public static void main(String[] args){

??????? int n;

??????? n = fun(0);

??????? System.out.println("原來有"+n+"個桃子");

??? }

??? private static int fun(int i){

??????? if(i==5)

??????? ? return 1;

??????? else

??????? ? return fun(i+1)*5+1;

??? }

}

【程序42】

題目:809*??=800*??+9*??+1

其中??代表的兩位數,8*??的結果為兩位數,9*??的結果為3位數。求??代表的兩位數,及809*??后的結果。

public class Prog42{

??? public static void main(String[] args){

??????? int n = 0;

??????? boolean flag = false;

??????? for(int i=10;i<100;i++)

??????? ? if(809*i==800*i+9*i+1){

??????? ? ? flag = true;

??????? ? ? n = i;

??????? ? ? break;

??????? ? }

??????? if(flag)

??????? ? System.out.println(n);

??????? else

??????? ? System.out.println("無符合要求的數!");

??? }

}

【程序43】

題目:求0—7所能組成的奇數個數。

public class Prog43{

??? public static void main(String[] args){

??????? int count = 0;

??????? //聲明由數字組成的數

??????? int n = 8;

??????? //一位數

??????? count = n/2;

??????? //兩位數

??????? count += (n-1)*n/2;

??????? //三位數

??????? count += (n-1)*n*n/2;

??????? //四位數

??????? count += (n-1)*n*n*n/2;

??????? //五位數

??????? count += (n-1)*n*n*n*n/2;

??????? //六位數

??????? count += (n-1)*n*n*n*n*n/2;

??????? //七位數

??????? count += (n-1)*n*n*n*n*n*n/2;

??????? System.out.println("0-7所能組成的奇數個數:"+count);

??? }

}

【程序44】

題目:一個偶數總能表示為兩個素數之和。

import java.util.Scanner;

public class Prog44{

??? public static void main(String[] args){

??????? System.out.print("請輸入一個偶數:");

??????? Scanner scan = new Scanner(System.in);

??????? int n = scan.nextInt();

??????? scan.close();

??????? if(n%2!=0){

??????? ? System.out.println("您輸入的不是偶數!");

??????? ? return;

??????? }

??????? twoAdd(n);

??? }

??? //偶數分解為素數之和

??? private static void twoAdd(int n){

??????? for(int i=2;i<n/2+1;i++){

??????????? if(isPrime(i)&&isPrime(n-i)){

??????????????? System.out.println(n+"="+(i)+"+"+(n-i));

??????????????? break;

??????????? }

??????? }

??? }

??? //判斷素數

??? private static boolean isPrime(int m){

??????? boolean flag = true;

??????? for(int i=2;i<Math.sqrt(m)+1;i++){

??????????? if(m%i==0){

??????????????? flag = false;

??????????????? break;

??????????? }

??????? }

??????? return flag;

??? }

}

【程序45】

題目:判斷一個素數能被幾個9整除

import java.util.Scanner;

public class Prog45{

??? public static void main(String[] args){

??????? System.out.print("請輸入一個數:");

??? ? Scanner scan = new Scanner(System.in);

??? ? long l = scan.nextLong();

??? ? long n = l;

??? ? scan.close();

??? ? int count = 0;

??? ? while(n>8){

??????? ? n /= 9;

??????? ? count++;

??? ? }

??? ? System.out.println(l+"能被"+count+"個9整除。");

??? }

}

【程序46】

題目:兩個字符串連接程序

public class Prog46{

??? public static void main(String[] args){

??????? String str1 = "lao lee";

??? ? String str2 = "牛刀";

??? ? String str = str1+str2;

??? ? System.out.println(str);

??? }

}

【程序47】

題目:讀取7個數(1—50)的整數值,每讀取一個值,程序打印出該值個數的*。

import java.util.Scanner;

public class Prog47{

??? public static void main(String[] args){

??????? System.out.print("請輸入7個整數(1-50):");

??????? Scanner scan = new Scanner(System.in);

??????? int n1 = scan.nextInt();

??????? int n2 = scan.nextInt();

??????? int n3 = scan.nextInt();

??????? int n4 = scan.nextInt();

??????? int n5 = scan.nextInt();

??????? int n6 = scan.nextInt();

??????? int n7 = scan.nextInt();

??????? scan.close();

??????? printStar(n1);

??????? printStar(n2);

??????? printStar(n3);

??????? printStar(n4);

??????? printStar(n5);

??????? printStar(n6);

??????? printStar(n7);

??? }

??? static void printStar(int m){

??????? System.out.println(m);

??????? for(int i=0;i<m;i++)

??????? ? System.out.print("*");

??????? System.out.println();

??? }

}

【程序48】

題目:某個公司采用公用電話傳遞數據,數據是四位的整數,在傳遞過程中是加密的,加密規則如下:每位數字都加上5,然后用和除以10的余數代替該數字,再將第一位和第四位交換,第二位和第三位交換。

public class Prog48{

??? public static void main(String[] args){

??????? int n = 1234;

??????? int[] a = new int[4];

??????? for(int i=3;i>=0;i--){

??????? ? a[i] = n%10;

??????? ? n /= 10;

??????? }

??????? for(int i=0;i<4;i++)

??????? ? System.out.print(a[i]);

??????? System.out.println();

??????? for(int i=0;i<a.length;i++){

??????? ? a[i] += 5;

??????? ? a[i] %= 10;

??????? }

??????? int temp1 = a[0];

??????? a[0] = a[3];

??????? a[3] = temp1;

??????? int temp2 = a[1];

??????? a[1] = a[2];

??????? a[2] = temp2;

??????? for(int i=0;i<a.length;i++)

??????? ? System.out.print(a[i]);

??? }

}

【程序49】

題目:計算字符串中子串出現的次數

public class Prog49{

??? public static void main(String[] args){

??????? String str = "I come from County DingYuan Province AnHui.";

??????? char[] ch = str.toCharArray();

??????? int count = 0;

??????? for(int i=0;i<ch.length;i++){

??????????? if(ch[i]==' ')

??????????? ? count++;

??????? }

??????? count++;

??????? System.out.println("共有"+count+"個字串");

??? }

}

【程序50】

題目:有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成績),計算出平均成績,將原有的數據和計算出的平均分數存放在磁盤文件"stud"中。

import java.io.*;

public class Prog50{

??? //定義學生模型

??? String[] number = new String[5];

??? String[] name = new String[5];

??? float[][] grade = new float[5][3];

??? float[] sum = new float[5];

??? public static void main(String[] args) throws Exception{

??????? Prog50 stud = new Prog50();

??????? stud.input();

??????? stud.output();

??? }

??? //輸入學號、姓名、成績

??? void input() throws IOException{

??????? BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

??????? //錄入狀態標識

??????? boolean isRecord = true;

??????? while(isRecord){

??????????? try{

??????????? ? for(int i=0;i<5;i++){

??????????????? ? System.out.print("請輸入學號:");

??????????????? ? number[i] = br.readLine();

??????????????? ? System.out.print("請輸入姓名:");

??????????????? ? name[i] = br.readLine();

??????????????? ? for(int j=0;j<3;j++){

??????????????????? ? System.out.print("請輸入第"+(j+1)+"門課成績:");

??????????????????? ? grade[i][j] = Integer.parseInt(br.readLine());

??????????????? ? }

??????????????? ? System.out.println();

??????????????? ? sum[i] = grade[i][0]+grade[i][1]+grade[i][2];

??????????? ? }

??????????? ??? isRecord = false;

??????? ??? }catch(NumberFormatException e){

??????????? ???? System.out.println("請輸入一個數字!");

??????? ? }

??????? }

??? }

??? //輸出文件

??? void output() throws IOException{

??????? FileWriter fw = new FileWriter("E://java50//stud.txt");

??????? BufferedWriter bw = new BufferedWriter(fw);

??????? bw.write("No.? "+"Name? "+"grade1? "+"grade2? "+"grade3? "+"average");

??????? bw.newLine();

??????? for(int i=0;i<5;i++){

??????? ? bw.write(number[i]);

??????? ? bw.write("? "+name[i]);

??????? ? for(int j=0;j<3;j++)

??????? ??? bw.write("? "+grade[i][j]);

??????? ? bw.write("? "+(sum[i]/5));

??????? ? bw.newLine();

??????? }

??????? bw.close();

??? }

}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443262.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443262.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443262.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

爬蟲軟件python功能_Python 網絡爬蟲程序詳解

#!/usr/bin/python #調用pythonfrom sys import argv #導入sys是導入python解釋器和他環境相關的參數from os import makedirs,unlink,sep  #os主要提供對系統路徑&#xff0c;文件重命名和刪除文件所需的函數#makedirs是創建遞歸文件夾的函數。#比如說我們要創建一個新的目錄…

價錢轉換python_如何在python中轉換貨幣?

我正在做一個虛擬助手項目。我想讓它告訴我其他貨幣的美元匯率。我用beauthoulsoup編寫了以下代碼&#xff0c;它從給定的網站獲取數據&#xff0c;對其進行解析并在命令行中打印結果供我閱讀。但這只是美元對巴基斯坦盧比。如何修改程序&#xff0c;使其接受任何貨幣并告訴我該…

char qt 轉unicode_Qt QString 中文 char* UTF-8 QByteArray QTextCodec unicode gb2312 GBK 亂碼與轉碼問題...

2012-03-22 14:00175人閱讀評論(0)代碼如下&#xff1a;如果不不設全局的字符集是utf-8&#xff0c;那么網上一般的方法是可以轉的。如下程序中 #define DD 1的情況下&#xff1b;但是如果設置了全局的utf-8&#xff0c;再用以前的方法&#xff1a;QByteArraybaaaa.toLatin1();…

計算機圖形學考試題及答案_計算機圖形學考試題及答案

3、在圖形文件中&#xff0c;常用來描述圖形元素(點&#xff0c;線&#xff0c;圓&#xff0c;弧等)&#xff1b;而在光柵掃描圖形顯示器中&#xff0c;采用顯示所有圖形。4、當三維物體用透視變換方程投影到觀察平面上&#xff0c;物體中不與觀察平面平行任一簇平行線投影成收…

子窗體中組合框聯動_一張表實現組合框聯動

嗨&#xff0c;大家中午好&#xff01;最近&#xff0c;有網友給我私信&#xff0c;想要一個聯動的示例&#xff0c;一個有關于部門聯動的操作。其實關于聯動的操作有很多&#xff0c;可以是組合框的聯動&#xff0c;列表框聯動&#xff0c;組合框與列表框也可以聯動&#xff0…

中如何實現文字轉語音_錄音轉文字、文字轉語音,學會這一招就夠了!手把手教你如何操作...

閱讀文章時候想著有人可以把文章讀給我聽就好了&#xff0c;寫作時想著語音直接可以轉換成文字就好了&#xff0c;大家是不是有時會突然冒出這樣的想法&#xff1f;七十這些看似天真的想法&#xff0c;還真的有辦法解決&#xff0c;這里就手把手教你如何操作才能將的文字轉換成…

圖像 理想低通濾波_圖像處理之濾波(下)

[toc]目錄一、常規濾波低通高通帶通帶阻二、非局部均值濾波三、維納濾波四、卡爾曼濾波前言所謂濾波&#xff0c;其實就是從混合在一起的諸多信號中提取出所需要的信號。信號的分類&#xff1a;確定型信號&#xff0c;可以表示為確定的時間函數&#xff0c;可確定其在任何時刻的…

泰山行宮碧霞元君祠_臨清市泰山行宮碧霞元君祠5月4號(農歷三月三十日)舉行大型泰山奶奶接駕法會...

臨清是泰山奶奶的娘家&#xff0c;每年的四月泰山奶奶要回臨清省親臨清市道教協會定于2019年農歷三月三十(5月4號星期六)于臨清桑樹園泰山行宮碧霞元君祠舉行大型泰山奶奶迎鸞接駕廟會。屆時&#xff0c;將有架鼓會、云龍會、獅胞會、鋼叉會、高蹺會、天音會、彩船會、秧歌會等…

充分條件反過來是必要條件嗎_“充分必要條件”引發的現實思考

昨天看了一篇文章是介紹“充分條件和必要條件”&#xff0c;大致就是A能直接推導出B&#xff0c;那A就是B的充分條件。A不一定能推導出B&#xff0c;但是沒A一定推導不出B&#xff0c;那A就是B必要條件。舉個簡單的例子&#xff1a;對你好&#xff08;A&#xff09;與喜歡你&am…

手機游戲降低游戲延遲的軟件_怎么降低手機網絡延遲(減少網絡延遲的5個小技巧)...

在過去的幾十年里&#xff0c;用戶或開發人員并不擔心延遲。在上世紀90年代和本世紀初&#xff0c;個人互聯網連接速度要慢得多&#xff0c;因此發送請求和接收響應之間的延遲要遠遠小于下載完成所需的時間。如今&#xff0c;更高的帶寬連接使下載速度更快&#xff0c;因此延遲…

mysql常用的開發軟件下載_強烈推薦!14款經典的MySQL客戶端軟件

【IT168 評論】不用我說&#xff0c;大家都知道MySQL是一個怎么樣的數據庫。雖然它的命運比較坎坷&#xff0c;但是絲毫沒有影響到我們對MySQL的熱情。不論是個人程序或者網站&#xff0c;還是企業數據庫&#xff0c;MySQL的身影無處不在。無論做什么數據庫的開發&#xff0c;一…

mysql最大值最小值_mysql最大值,最小值,總和查詢與計數查詢

1、最大值查詢&#xff1a;mysql> select max(score) from 4a;------------| max(score) |------------| 93 |------------1 row in set (0.06 sec)2、最小值查詢&#xff1a;mysql> select max(4a.score),min(4inall.score) from 4a,4inall;-------------------…

阿里云 centos mysql_在阿里云的CentOS環境中安裝配置MySQL的教程

1 常規錯誤的yum安裝方法&#xff1a;在前文中記述了CentOS 6.5系統中通過yum方式快速地搭建了LNMP環境&#xff0c;那么是否也能在CentOS 7或CentOS 7.1系統中依葫蘆畫瓢安裝MySql5.6.24呢&#xff1f;答案是否定的。[roottypecodes ~]# yum -y install mysql mysql-server my…

mysql文件脫機_SQL數據庫的脫機與聯機操作

online : 可對數據庫進行訪問offline&#xff1a;數據庫無法使用1、使用查詢語句select state_desc from sysdatabases where name 數據庫名 2、使用databasepropertyex( database,property)函數select databasepropertyex( 數據庫 ,’ status )分離數據庫&#xff1a;EXEC…

dockerfile 安裝mysql_dockerfile構建mysql鏡像

使用dockerfile構建mysql&#xff0c;鏡像構建完成后&#xff0c;運行容器后&#xff0c;啟動mysql服務總是報錯Fatal error: Cant open and lock privilege tables: Table storage engine for db doesnt have this optionmysql安裝使用的官方的壓縮包mysql-5.7.20-linux-glibc…

ubunt11 安裝mysql_ubuntu 11.10安裝mysql

1. 安裝devadmdevserver:~$ sudo apt-get install mysql-server......The following NEW packages will be installed:libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient16libnet-daemon-perl libplrpc-perl mysql-client-5.1 mysql-client-core-5.1mysql-c…

mysql 取交集 php_mysql 查詢結果取交集的方法

本文將詳細介紹MySQL中如何實現以SQL查詢返回的結果集取交集的實現方法&#xff0c;需要的朋友可以參考1MySQL中如何實現以下SQL查詢(SELECT S.NameFROM STUDENT S, TRANSCRIPT TWHERE S.StudId T.StudId AND T.CrsCode CS305)INTERSECT(SELECT S.NameFROM STUDENT S, TRANSC…

mysql極客_極客mysql16

1.MySQL會為每個線程分配一個內存(sort_buffer)用于排序該內存大小為sort_buffer_size1>如果排序的數據量小于sort_buffer_size&#xff0c;排序將會在內存中完成2>如果排序數據量很大&#xff0c;內存中無法存下這么多數據&#xff0c;則會使用磁盤臨時文件來輔助排序&a…

mysql觸發器生成流水_利用mysql觸發器生成流水號

http://blog.csdn.net/bluestream/article/details/5755176利用mysql觸發器可以生成如日期(20100721)編號(0001)的流水號,編號每天都會從0001開始計算create table orders(orders_id int(10) primary key,customer_name varchar(100) );--------------------------------------…

linux 測試環境啟用jar_Linux下搭建測試環境

一、下載安裝包https://pan.baidu.com/s/1h-Nk8HcWKKtqbjrn0J_t1g 457jJDK1.8安裝包、Tomcat8安裝包本文用的遠程連接Linux操作系統的客戶端工具為Xshell&#xff0c;相關使用請自行百度二、安裝JDK1、先檢查該環境是否已經安裝過jdk。輸入java -version。如果有&#xff0c;…