1變數、運算符和類型轉換:1.1手動輸入一個學生的成績,對這個成績進行一次加分,加當前成績的20%,輸出加分後成績 Scanner scan = new Scanner(System.in); System.out.println("請輸入一個數字"); int num = scan.nextInt ...
1變數、運算符和類型轉換:
1.1手動輸入一個學生的成績,對這個成績進行一次加分,加當前成績的20%,輸出加分後成績
Scanner scan = new Scanner(System.in); System.out.println("請輸入一個數字"); int num = scan.nextInt(); num += num * 0.2; System.out.println(num);View Code
1.2商場舉行店慶,抽幾折打幾折,
先手動輸入消費金額,再輸入,抽到的折扣,計算出折後價格
Scanner scan = new Scanner(System.in); System.out.println("請輸入消費金額"); int num = scan.nextInt(); System.out.println("請輸入抽到的折扣"); int dis = scan.nextInt(); int price = 0;// 累加變數 price = num * dis / 10; System.out.println("折後價格:" + price);View Code
1.3手動輸入一個4位數,求各位數字之和
Scanner scan = new Scanner(System.in); System.out.println("請輸入一個4位數"); int shu = scan.nextInt(); int a = shu / 1 % 10; int b = shu / 10 % 10; int c = shu / 100 % 10; int d = shu / 1000 % 10; System.out.println(a + b + c + d);View Code
2分支結構:
2.1商場消費返利活動,手動輸入顧客消費金額,
如果金額打8折後仍然滿1000元,用戶就獲得200元代金券一張(不考慮多張)
Scanner scan = new Scanner(System.in); System.out.println("請輸入消費金額"); int num = scan.nextInt(); double dis = num * 0.8;// 打折後的價格 if (dis > 1000) { dis = dis - 200;// 200元代金券 } System.out.println(dis);View Code
2.2用戶輸入一個年份,如果是閏年輸出是閏年
(年份能被4整除,且不能被100整除,或者能被400整除的年份)
Scanner input = new Scanner(System.in); System.out.println("輸入年份"); int year = input.nextInt(); if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { System.out.println("是閏年"); } else { System.out.println("不是閏年"); }View Code
2.3手動輸入一個整型會員號,
如果用戶輸入的是4位數字,
輸出登錄成功,
如果用戶輸入的不是4位數字,
輸出“您輸入的會員號有誤”
Scanner input = new Scanner(System.in); System.out.println("請輸入整型會員號"); int num = input.nextInt(); int i = 0;// 初始化 數字的位數 while (num != 0) { num = num / 10;// 被10整除 i++; } // 最後,這個 i 就是數字的位數 if (i != 4) { System.out.println("您輸入的會員號有誤"); } else { System.out.println("登錄成功!"); }View Code
2.4手動輸入a,b,c三個變數的數值,
要求通過數值交換,
把輸入的數值從小到大
排序放入a,b,c中,並輸出
Scanner scanner = new Scanner(System.in); System.out.print("請輸入第一個整數:"); int a = scanner.nextInt(); System.out.print("請輸入第二個整數:"); int b = scanner.nextInt(); System.out.print("請輸入第三個整數:"); int c = scanner.nextInt(); int x = 0; if (a > b) { x = a; a = b; b = x; } if (a > c) { x = a; a = c; c = x; } if (b > c) { x = b; b = c; c = x; } System.out.println(a + "," + b + "," + c);View Code
3多分支結構
3.1商場根據會員積分打折,
2000分以內打9折,
4000分以內打8折
8000分以內打7.5折,
8000分以上打7折,
使用if-else-if結構,實現手動輸入購物金額和積分,計算出應繳金額
Scanner sc = new Scanner(System.in); System.out.println("請輸入購物金額"); double shop = sc.nextDouble(); System.out.println("請輸入積分"); int fen = sc.nextInt(); if (fen < 2000) { shop *= 0.9; System.out.println("目前消費" + shop + "元"); } else if (fen >= 2000 && fen <= 4000) { shop *= 0.8; System.out.println("目前消費" + shop + "元"); } else if (fen <= 8000 && fen > 4000) { shop *= 0.75; System.out.println("目前消費" + shop + "元"); } else if (fen > 8000) { shop *= 0.7; System.out.println("目前消費" + shop + "元"); } else { System.out.println("抱歉沒有折扣"); }View Code
3.2機票價格按照淡季旺季、頭等艙和經濟艙收費、
輸入機票原價、月份和頭等艙或經濟艙,
其中旺季(5-10月)頭等艙9折,經濟艙85折,
淡季(11月到來年4月)頭等艙7折,經濟艙65折,
最終輸出機票價格
Scanner s = new Scanner(System.in); System.out.println("請輸入機票原價"); int piao = s.nextInt(); System.out.println("請輸入月份"); int yue = s.nextInt(); System.out.println("請選擇:1.頭等" + "2.經濟"); int l = s.nextInt(); if (yue >= 5 && yue <= 10) {// 旺季 if (l == 1) { piao *= 0.9; } else { piao *= 0.85; } } else {// 淡季 if (l == 1) { piao *= 0.7; } else { piao *= 0.65; } } System.out.println(piao);View Code
3.3選擇一個形狀(1長方形、2正方形、3三角形、4圓形)
根據不同的選擇讓用戶輸入不同的信息,
長方形有長和寬、
正方形有邊長、
三角形有底和高、
圓形有半徑,
計算輸出指定形狀的面積
Scanner scan=new Scanner(System.in); System.out.println("1長方形、2正方形、3三角形、4圓形"); int num=scan.nextInt(); switch(num) { case 1: System.out.println("請輸入長方形的長"); int l=scan.nextInt(); System.out.println("請輸入長方形的寬"); int w=scan.nextInt(); int fs=l*w; System.out.println("長方形面積為:"+fs); break; case 2: System.out.println("請輸入正方形邊長"); int z=scan.nextInt(); System.out.println("正方形面積為:"+z*z); break; case 3: System.out.println("請輸入三角形的底長"); int d=scan.nextInt(); System.out.println("請輸入三角形的高"); int g=scan.nextInt(); System.out.println("三角形面積為:"+d*g/2); break; case 4: System.out.println("請輸入圓形的半徑"); double r=scan.nextDouble(); double ys=3.14*r*r; System.out.println("圓形面積為:"+ys); break; }View Code
3.4輸入年份和月份,輸出這個月應該有多少天(使用switch結構)
Scanner scan = new Scanner(System.in); System.out.println("請輸入年份"); int year = scan.nextInt(); System.out.println("請輸入月份"); int month = scan.nextInt(); switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println("31天"); break; case 4: case 6: case 9: case 11: System.out.println("30天"); break; case 2: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { System.out.println("29天"); } else { System.out.println("28天"); } }
4迴圈結構(上)
4.1隨機生成一個1-100之間的數字num,迴圈讓用戶輸入猜這個數,
如果用戶輸入的數字大於num提示輸入的數字比較大,
如果用戶輸入的數字小於num提示輸入的數字比較小,
直到用戶輸入的數字和num相等為止,然後輸出用戶猜數的總次數
Scanner scan=new Scanner(System.in); Random ran=new Random(); //生成游戲答案1~100 int num=ran.nextInt(100)+1; //System.out.println(num); int n=0;//定義n的初值 int i=0;//定義猜數次數 while(n!=num) { System.out.println("請猜數字"); n=scan.nextInt(); if(n>num) {//判斷猜數結果 System.out.println("輸入的數字較大"); }else if(n<num) { System.out.println("輸入的數字較小"); }else { System.out.println("恭喜您猜對了"); } i++;//猜數次數加1 } System.out.println("總共猜了"+i+"次");
4.2列印出1-100之間所有不是7的倍數和不包含7的數字,並求和
int sum = 0; for (int i = 1; i <= 100; i++) { if(i%7 ==0 || i%10 == 7 || i/10 == 7){//註意:70-79容易漏掉 continue; } sum += i; } System.out.println(sum);
4.3迴圈輸入5個數,輸完後顯示這些數中有沒有負數
Scanner scan=new Scanner(System.in); System.out.println("請輸入5個數字"); int flag=0;//立旗 int i=1; while(i<=5) { int num=scan.nextInt(); if(num<0) { flag=1; } i++; } if(flag==0) { System.out.println("沒有負數"); }else { System.out.println("有負數"); }
5迴圈結構(下)
5.1有一個有錢的神經病,他往銀行里存錢,
第一天存1元,以後每天比前一天多存50%,完成下列計算任務
1)他存到第幾天,當天存的錢會超過10元
double money=1; int day=1; while(money<10) { money*=1.5; day++; System.out.println("day:"+day+",money:"+money); } System.out.println(day);
2)一個月(30天)後,他總共存了多少錢
double sum=0; double mo=1; for(int i=1;i<=30;i++) { sum+=mo; System.out.println("i:"+i+",money:"+mo+",sum:"+sum); mo*=1.5; } System.out.println(sum);
5.2有一個400米一圈的操場,一個人要跑10000米,
第一圈50秒,其後每一圈都比前一圈慢1秒,
按照這個規則計算跑完10000米需要多少秒
int round=10000/400; int sum=0; int time=50; for(int i=1;i<=round;i++) { sum+=time; System.out.println("圈數:"+i+",時間:"+time+",花的時間:"+sum); time++; } System.out.println(sum);
5.3用戶輸入任意一個整數,求各位數字之和
Scanner scan=new Scanner(System.in); System.out.println("請輸入一個數字"); int num=scan.nextInt(); int sum=0;//累加變數 while(num>0) { //將數字的個位取出累加 sum+=num%10; //將當前數字除以10,以便下次迴圈使用 num=num/10;//num/=10; } System.out.println(sum);
5.4井裡有一隻蝸牛,他白天往上爬5米,晚上掉3.5米,井深56.7米
計算蝸牛需要多少天才能從井底到爬出來
int day=1;//天數 double sum=0;//爬過的距離 while(true) { //白天向上爬5米 sum+=5; System.out.println("day:"+day+",sum:"+sum); if(sum>=56.7) {//如果爬出了井 //退出迴圈 break; } //晚上掉3.5; sum-=3.5; day++; } System.out.println(day);
6迴圈嵌套
6.1求1~1000以內質數列表
PS:質數是只能被1和自身整除的整數
int i, j; for (i = 1; i <= 1000; i++) { for (j = 2; j < i; j++) { if (i % j == 0) break; } if (i == j){ System.out.print(j + " "); } }
7數組
7.1定義一個數組int[] nums={8,7,3,9,5,4,1}
輸出數組中的最大值和最大值所在的下標
int[] nums={8,7,3,9,5,4,1}; int max = nums[0];//預設第一個最大 int index = 0; for (int i = 0; i < nums.length; i++) { if (nums[i] > max) { max = nums[i]; index = i; } } System.out.println("最大的數: "+max+" 下標: "+index);
7.2向一個長度為10的整型數組中隨機生成10個0~9的隨機整數,完成下列任務
1)升序輸出、降序輸出
2)輸出總和、平均數
Random ran = new Random(); int[] num = new int[10]; for (int i = 0; i < num.length; i++) { num[i] = ran.nextInt(10); } Arrays.sort(num); for (int i = 0; i < num.length; i++) { System.out.print(num[i] + " "); } System.out.println("------升序------"); for (int i = num.length - 1; i >= 0; i--) { System.out.print(num[i] + " "); } System.out.println("------降序------"); // 總和 int sum = 0; for (int i = 0; i < num.length; i++) { sum = num[i] + sum; } System.out.println("總和:" + sum); // 平均數 int sum2 = 0; for (int i = 0; i < num.length; i++) { sum2 = num[i] + sum2; } System.out.println("平均數:" + sum2 / num.length);
7.3向一個長度為5的整型數組中隨機生成5個1-10的隨機整數
要求生成的數字中沒有重覆數
int[] nums = new int[5]; Random ran = new Random(); for (int i = 0; i < nums.length; i++) { nums[i] = ran.nextInt(10) + 1; for (int j = 0; j < i; j++) { while (nums[i] == nums[j]) {//如果重覆,退回去重新生成隨機數 i--; } } } for (int i = 0; i < nums.length; i++) { System.out.print(nums[i] + " "); }
7.4(選做)向一個長度為10的整型數組中隨機生成10個0~9的隨機整數,完成下列任務
1)統計每個數字出現了多少次
2)輸出出現次數最多的數字
3)輸出只出現一次的數字中最小的數字
Random r = new Random(); // 1. 聲明源數組,包含10個0-9之間的隨機數 int[] src = new int[10]; // 2. 聲明一個標記數組,存放的是0-9,10個數字 int[] flag = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // 3. 聲明一個用來統計標記數組中數字在源 // 數組中的個數 int[] count = new int[flag.length]; // 4. 給源數組賦值0-9之間的隨機數 for (int i = 0; i < src.length; i++) { src[i] = r.nextInt(10); } // 5. 統計標記數組中的每個元素在源數組中 // 有多少個即給count數組賦值 for (int i = 0; i < flag.length; i++) { for (int j = 0; j < src.length; j++) { // 如果標記數組中的數字在源數組中有,則count+1 if (flag[i] == src[j]) { count[i]++; } } } // 6. 輸出src和count的數據 System.out.println("隨機產生的數據如下:"); System.out.println(Arrays.toString(src)); // System.out.println(Arrays.toString(count)); // a.統計每個數字出現的次數 // 如果count中的元素的值大於0,則輸出其下標和值 for (int i = 0; i < count.length; i++) { if (count[i] > 0) { System.out.println("數字" + i + "出現" + count[i] + "次"); } } // b.輸出出現最多次數的數字 // 假設第一個統計的數字就是最多那個 int max = count[0]; int index = 0; for (int i = 0; i < count.length; i++) { if (count[i] > max) { max = count[i]; index = i; } } System.out.println("出現次數最多的數字是" + index); // c. 輸出只出現一次的數字中最小的數字 for (int i = 0; i < count.length; i++) { if (count[i] == 1) { System.out.println("出現1次的數字中最小的是" + i); break; } }
good luck!