1. 程式人生 > >2018 - 12 - 8 週六作業

2018 - 12 - 8 週六作業

2018 - 12 - 8 作業

1、請編寫程式,實現對陣列“int[] a={2,4,6,1,3,7,5}”從小到大排序

int[] a={2,4,6,1,3,7,5};
		int t;
		for (int i=0;i<a.length-1;i++) {
			for(int j=0;j<a.length-i-1;j++) {
				if(a[j]>a[j+1]) {
					t=a[j];
					a[j]=a[j+1];
					a[j+1]=t;
				}
			}
		}
		
		for(int x:a) {
			System.out.print(x+" ");
		}

2、水仙花數:例如407=444 + 000 + 777,判斷是否是水仙花數

Scanner input = new Scanner(System.in);
		System.out.print("請輸入數字:");
		int n = input.nextInt();
		
		if(b(n)) {
			System.out.println("是水仙花數");
		}else {
			System.out.println("不是水仙花數");
		}	
	}
	
	static boolean b(int n){
		boolean b = false;
		int n1 = n%10;
		int n2 = (n/10)%10;
		int n3 = (n/100)%10;
		
		if(n == n1*n1*n1 + n2*n2*n2 +n3*n3*n3) {
			b=true;
		}
		return b;

3、輸入一批成績,(0~100分,不超過15個),統計並輸出平均成績以及高於平均成績的人數

Scanner input = new Scanner(System.in);
		
		int[] arr = new int[5];
		int a = 0;
		int i=0;
		for(;i<arr.length ;i++){
			System.out.print("請輸入第"+(i+1)+"位學生的成績");
			arr[i] = input.nextInt();
			a += arr[i];
			}
		int s = a/(arr.length);
		System.out.println("平均成績為:"+s);
		int q = 0;
		for(i=0;i<arr.length;i++) {
			if(arr[i]>=s) {
				q += 1;
				continue;
			}
		}
		System.out.print("大於平均分的人數為:"+q);

4、使用迴圈輸出100、95、90、85、80.。。。。5;

for(int i= 100;i>0;i-=5) {
			System.out.print(i+" ");
		}

5、程式設計計算1至50中是7的倍數之和

int s=0;
		for(int i = 1;i<=50;i++) {
			if(i%7==0) {
				s +=i;
			}
		}System.out.println("1~50中是7的倍數之和為:"+s);

6、輸出一批整數,輸出其中最大值和最小指,輸入0結束迴圈;

	Scanner input = new Scanner(System.in);
		int max = 0;
		int min = 0;
		for(int i=1;;i++) {
			System.out.print("請輸入一個整數(輸入0結束):");
			int a =input.nextInt();
			
			if(a==0) {
				break;
			}
			if(max<a) {
					max = a;
				}
			if(min>a) {
					min = a;
				}
			}
			System.out.print("最大值為:"+max+" ");
			System.out.println("最小值為:"+min);

7、從鍵盤輸入一個數,當輸入1~7時,顯示對應的英文星期,按0結束

Scanner input  = new Scanner(System.in);
		
		for(int i = 0; ;i++) {
			System.out.print("請輸入1~7(輸入0結束):");
			int a = input.nextInt();
			if(a == 0) {
				System.out.println("程式結束");
				break;
			}else if(a>=8||a<0) {
				System.out.println("請重新輸入");
				continue;
			}
			switch(a) {
			case 1:
				System.out.println("今天是MON");
				break;
			case 2:
				System.out.println("今天是TUE");
				break;
			case 3:
				System.out.println("今天是WEN");
				break;
			case 4:
				System.out.println("今天是THU");
				break;
			case 5:
				System.out.println("今天是FRI");
				break;
			case 6:
				System.out.println("今天是SAT");
				break;
			case 7:
				System.out.println("今天是SUN");
				break;
			}
		}

8、有若干只雞兔同在一個籠子裡,從上面數,有35個頭,從下面數,有94只腳。問籠中各有多少隻雞和兔?

for(int ji = 0;ji<=35;ji++) {
			int tuzi = 35-ji;
			if(ji*2+tuzi*4==94) {
				System.out.println("雞有"+ji+"兔子有"+tuzi);
				break;
			}
		}

9、計數1~100,若是3倍數,輸出“Flip”,5倍數輸出“flop”, 即是3又是5倍數輸出“FlipFlop”,其餘情況輸出該數字

for(int i =1;i<=100;i++) {
			System.out.print("請輸入數字:");
			
			if(i%3==0 & i%5==0) {
				System.out.println("FlipFlop");
				continue;
			}
			else if(i%3==0) {
				System.out.println("Flip");
				continue;
			}
			else if(i%5==0){
				System.out.println("flop");
				continue;
			}
			
			else {
				System.out.println(i);
			}
		}

10、馬克思的手稿中有這樣一道有趣的數學題:有30個人,其中有男人,女人,小孩。他們在一家飯館中吃飯,共花費50先令。如果每個男人吃飯要花3先令,每個女人要花2先令,每個小孩要花1先令,問男人,女人,小孩各多少人?

for(int m = 0;m<=10;m++) {
			int w = 20-2*m;
			int k = 30-m-w;
			
			if(m*3+w*2+k*1==50 && m>=0 &&w>=0 &&k>=0) {
				System.out.println("男人有"+m+"女人有"+w+"小孩"+k);
			}
		}

11、依次輸入5句話,然後將他們逆序輸出

String[] arr = {"在Java中","資料型別分兩類","一類是基本資料型別","二類是引用資料型別","要理解這兩類資料型別的區別"};
		
		String[] a = new String[arr.length];
		
		for(int i=0,t=arr.length-1;i<arr.length;i++,t--) {
			a[i]=arr[t];
		}
		for(String m :a) {
			System.out.print(m+"  ");
		}

12、商場中8名顧客消費分別是:18,25,7,36,13,2,89,63找出最低積分並找出他的下標

int[] arr = {18,25,7,36,13,2,89,63};
		int min = arr[0];
		
		int t = 0;
		for(int i = 0;i<arr.length;i++) {
			if(min>arr[i]) {
				min = arr[i];
				t = i;
			}
		}System.out.println("最小值為:"+min);
		System.out.println("對應的下標為:"+t);

13、從鍵盤輸入10個整數,合法值為1,2,3,不是在三個數則是非法值,統計出每個數字的個數

Scanner input = new Scanner(System.in);
		System.out.println("請輸入10個整數:");
		int a;
		int s1=0;
		int s2=0;
		int s3=0;
		int s4=0;
		int[] arr = new int[10];
		int i =0;
		for(i=0;i<10;i++) {
			arr[i]=input.nextInt();
			switch(arr[i]){
			case 1:
				s1 +=1;
				break;
			case 2:
				s2 +=1;
				break;
			case 3:
				s3 +=1;
				break;
			default :
				s4 +=1;
			}
		}
		System.out.print("輸入的數字為:");
		for(int m :arr) {
			System.out.print(m+" ");
		}
		System.out.println();
		System.out.println("數字1的個數為:"+s1);
		System.out.println("數字2的個數為:"+s2);
		System.out.println("數字3的個數為:"+s3);
		System.out.println("非法數字個數為:"+s4);

14、有一個長度為5的陣列,int[] arr=new int[]{1,3,-1,5,2}先建立一個新的陣列,將元素逆序存放,如果元素小於0,則按0處理;

int[] arr = {1,3,-1,5,-2};
		int[] q = new int[arr.length];
		
		System.out.print("原陣列為:");
		for(int m :arr) {
			System.out.print(m+" ");
		}
		System.out.println();
		System.out.print("新陣列為:");
			
		for(int i=0;i<arr.length;i++) {
			q[i] = arr[arr.length-(i+1)];
			
			if(q[i]<0) {
				q[i]=0;
			}
			System.out.print(q[i]+" ");
		}

15、編寫一個程式,1~500之間將能被2/5/7整數的數打印出來

for(int i =1;i<=500;i++) {
			if(i%2==0 && i%5==0 && i%7==0) {
				System.out.println(i);
			}
		}