2018 - 12 - 8 週六作業
阿新 • • 發佈:2018-12-08
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);
}
}