package com.j05.day0317.test;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
abc1();
}
/*
* 編程輸入整數a和b,若a或b大於100,則輸出a、b的和與100的差,否則輸出兩數之和。
*/
public static void abc1(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個數");
int a=sc.nextInt();
System.out.println("請輸入另一個數");
int b=sc.nextInt();
if(a>100||b>100){
System.out.println(a+b-100);
}else{
System.out.println(a+b);
}
}
/*
* 從鍵盤輸入三角形的三邊長,判斷出這三邊能否構成三角形。注:任意兩邊之和大於第三邊
*/
public static void abc2(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入第一邊的值");
int a=sc.nextInt();
System.out.println("請輸入第二邊的值");
int b=sc.nextInt();
System.out.println("請輸入第三邊的值");
int c=sc.nextInt();
if(a+b>c&&a+c>b&&b+c>a){
System.out.println("能構成三角形");
}else{
System.out.println("不能構成三角形");
}
}
/*
* 超市大優惠;
* 滿800元以上打6折,加送珍珠項鏈一條;
* 滿600元以上打7折,加送相冊一本;
* 滿400元以上打8折,加送锆石一顆;
* 滿兩百元以上打9折。
* 輸入任意消費金額,打印其實際支付金額,若有贈送品,需顯示在屏幕上。
*/
public static void abc3(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入消費金額");
double money=sc.nextDouble();
if(money>800){
System.out.println(money*0.6+"送珍珠項鏈一條");
}else if(money>600&&money<=800){
System.out.println(money*0.7+"送相冊一本");
}else if(money>400&&money<=600){
System.out.println(money*0.8+"送锆石一顆");
}else if(money>200&&money<=400){
System.out.println(money*0.9);
}else{
System.out.println("不打折");
}
}
/*
* 給一個不多於5位的正整數,要求:
* 1.求出它是幾位數
* 2.按逆序打印出各位數字,例如原數是123應輸出321
*/
//方法一
public static void abc4(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個不大於五位的正整數");
int num=sc.nextInt();
if(num<0||num>99999){
System.out.println("輸入錯誤,請重新輸入");
}else{
if(num<=9){
System.out.println("你輸入的正整數倒序位:"+num);
}else if(num>=10&&num<100){
int ge=num%10;
int shi=num/10;
System.out.println("你輸入的正整數倒序為:"+ge+shi);
}else if(num>=100&&num<1000){
int ge=num%10;
int shi=num/10%10;
int bai=num/100;
System.out.println("你輸入的正整數倒序為:"+ge+shi+bai);
}else if(num>=1000&&num<10000){
int ge=num%10;
int shi=num/10%10;
int bai=num/100%10;
int qian=num/1000;
System.out.println("你輸入的正整數倒序為:"+ge+shi+bai+qian);
}else{
int ge=num%10;
int shi=num/10%10;
int bai=num/100%10;
int qian=num/1000%10;
int wan=num/10000;
System.out.println("你輸入的正整數倒序為:"+ge+shi+bai+qian+wan);
}
}
}
//方法二
public static void abc5(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個不大於五位的正整數:");
int a=sc.nextInt();
if(a<0&&a>99999){
System.out.println("輸入錯誤,請重新輸入");
}else{
if(a>=10000&&a<100000){
System.out.println("五位數,倒序為:"+a%10+(a%100-a%10)/10+(a%1000-a%100)/100+(a%10000-a%1000)/1000+(a-(a%10000))/10000);
}else if(a>=1000&&a<10000){
System.out.println("四位數,倒序為:"+a%10+(a%100-a%10)/10+(a%1000-a%100)/100+(a-a%100)/1000);
}else if(a>=100&&a<1000){
System.out.println("三位數,倒序為:"+a%10+(a%100-a%10)/10+(a-a%100)/100);
}else if(a>=10&&a<100){
System.out.println("兩位數,倒序為:"+a%10+(a-a%10)/10);
}else{
System.out.println("一位數,倒序為"+a);
}
}
}
/*
* 輸入某年某月某日,判斷這一天的下一天是幾月幾日。
*/
public static void abc6(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入年份:");
int year=sc.nextInt();
System.out.println("請輸入月份:");
int month=sc.nextInt();
System.out.println("請輸入號數:");
int day=sc.nextInt();
if(month==1||month==3||month==5||month==7||month==8||month==10){
if(day==31){
month++;
day=1;
}else{
day++;
}
}else if(month==4||month==6||month==9||month==11){
if(day==30){
month++;
day=1;
}else{
day++;
}
}else if(month==12){
if(day==31){
year++;
month=1;
day=1;
}else{
day++;
}
}else{
if(year%4==0&&year%100!=0||year%400==0){
if(day==29){
month++;
day=1;
}else{
day++;
}
}else{
if(day==28){
month++;
day=1;
}else{
day++;
}
}
}
System.out.println("你輸入的日期的下一天為:"+year+"年"+month+"月"+day+"天");
}
/*
* 從鍵盤輸入兩個數和一個運算符(+、-、*、/),輸出運算結果(switch語句寫)
*/
public static void abc07(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入第一個數");
int a=sc.nextInt();
System.out.println("請輸入第二個數");
int b=sc.nextInt();
char c=sc.next().charAt(0);
switch(c){
case '+':System.out.println("a+b="+(a+b));break;
case '-':System.out.println("a-b="+(a-b));break;
case '*':System.out.println("a*b="+(a*b));break;
case '/':System.out.println("a/b="+(a/b));break;
default:System.out.println("輸入錯誤");
}
}
/*
* 輸出1~100中的所有偶數
*/
//方法一
public static void abc08(){
for(int a=1;a<=100;a++){
if(a%2==0){
System.out.println("偶數為:"+a);
}
}
}
//方法二
public static void abc09(){
int a=2;
while(a<=100){
System.out.println("偶數為:"+a);
a+=2;
}
}
/*
* 輸出1+2+3+4+...+100的和
*/
//方法一
public static void abc10(){
int a=0;
for(int i=1;i<=100;i++){
a=a+i;
}
System.out.println(a);
}
//方法二
public static void abc11(){
int a=1;
int b=0;
while(a<=100){
b=a+b;
a++;
}
System.out.println(b);
}
/*
* 由輸入的值決定循環的執行次數,循環變量默認從1開始
*/
//方法一
public static void abc12(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個正整數");
int a=sc.nextInt();
int b=1;//b=0時,後面的循環次數改成b+1
while(b<a){
System.out.println("我已經循環了"+b+"次了");
b++;
}
}
//方法二
public static void abc13(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個正整數");
int i=sc.nextInt();
for(int num=1;num<=i;num++){
System.out.println("我已經循環了"+num+"次了");
}
}
/*
* 用戶輸入一個10以內的數字,通過運算求出該數字的階乘
*/
public static void abc14(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個10以內的正整數");
int num=sc.nextInt();
int sum=1;
for(int i=1;i<=10;i++){
sum=sum*i;
System.out.println("i="+i);
System.out.println(sum);
}
System.out.println(sum);
}
/*
* 手動輸入兩個數字m和n,運算求出m~n之間所有偶數的和
*/
public static void abc15(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入兩個整數");
int m=sc.nextInt();
int n=sc.nextInt();
int sum=0;
if(m>n){
for(int i=n;i<=m;i++){
if(i%2==0){
sum=sum+i;
System.out.println(sum);
}
}
}else{
for(int i=m;i<=n;i++){
if(i%2==0){
sum=sum+i;
System.out.println(sum);
}
}
}
System.out.println(sum);
}
/*
* 模擬注冊以及登錄:
* 1.注冊不知道用戶的操作次數,所以需要使用死循環;
* 2.檔用戶確定了用戶名和密碼後,注冊成功。保存下用戶輸入的用戶名及密碼;
* 3.登錄最多只能三次,如果第三次還沒有成功直接退出程序
* 思考? 1.用戶名和密碼怎樣保存
* 2.用一個只能執行三次的循環控制登錄次數,但是要求第三次時其實“再見”
*/
public static void abc16(){
String username="";
String password="";
Scanner sc=new Scanner(System.in);
for(;;){
System.out.println("請輸入用戶名");
username=sc.nextLine();
System.out.println("請輸入密碼");
String ps1=sc.nextLine();
System.out.println("請確認密碼");
String ps2=sc.nextLine();
if(ps1.equals(ps2)){
System.out.println("注冊成功!");
password=ps1;
break;
}
}
for(int i=1;i<=3;i++){
System.out.println("請輸入用戶名:");
String newUserName=sc.next();
System.out.println("請輸入密碼:");
String newPassWord=sc.next();
if(newUserName.equals(username)&&newPassWord.equals(password)){
System.out.println("登錄成功!");
break;
}else{
System.out.println("你還有"+(3-i)+"次機會");
if(i==3){
System.out.println("拜拜");
}
continue;
}
}
}
/*
* 1.把100~200中不能被3整除的數輸出,每四個換行輸出
*
*/
public static void abc17(){
int count=0;
for(int i=100;i<=200;i++){
if(i%3!=0){
if(count<3){
System.out.print(i+"\t");
count++;
}else{
System.out.println(i);
count=0;
}
}
}
}
/*
* 輸出1~100之間的奇數,每行輸出5個數字
*/
public static void abc18(){
int count=0;
for(int i=1;i<=100;i++){
if(i%2!=0){
if(count<4){
System.out.print(i+"\t");
count++;
}else{
System.out.println(i);
count=0;
}
}
}
}
/*
* 輸出一個字符串,統計該字符中分別包含多少個數字,多少個字母,多少個其他字符
*/
public static void abc19(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個字符:");
String a=sc.nextLine();
int zimu=0;
int num=0;
int other=0;
for(int i=0;i<a.length();i++){
char ch=a.charAt(i);
if('0'<=ch&&ch<='9'){
num++;
}else if('a'<=ch&&'z'>=ch){
zimu++;
}else{
other++;
}
}
System.out.println("字母"+zimu+"個");
System.out.println("數字"+num+"個");
System.out.println("其他字符"+other+"個");
}
/*
* 有一群豬(100~200之間),如果分成4個豬一組,則多2個豬;若分成7個豬一組,則多
* 3個豬;若分成9個豬一組則多5個豬,試求出豬的總數
*/
public static void abc20(){
for(int i=100;i<=200;i++){
if(i%4==2&&i%7==3&&i%9==5){
System.out.println("豬的總數為:"+i);
}
}
}
/*
* 算水仙花數量(100~999):表示三位數字,個位的三次方+十位的三次方+百位的
* 三次方=這個數本身
*/
public static void abc21(){
for(int i=100;i<=999;i++){
int g=i%10;
int s=i/10%10;
int b=i/100;
if(g*g*g+s*s*s+b*b*b==i){
System.out.println(i);
}
}
}
/*
* 計算機隨機產生一個數,用戶進行猜數,直到猜正確為止
*/
public static void abc22(){
Scanner sc=new Scanner(System.in);
for(;;){
int num=(int)(Math.random()*10);
System.out.println(num);
System.out.println("請輸入一個10以內整數:");
int a=sc.nextInt();
if(num==a){
break;
}
}
System.out.println("我猜對了");
}
/*
* 隨機生成一個數(范圍自定),直到生成的數是88,則跳出循環,並
* 統計一共執行了多少次(使用break)
*/
public static void abc23(){
int count=0;
for(;;){
count++;
int num=(int)(Math.random()*100);
if(num==88){
System.out.println("隨機生成88了");
break;
}
}
System.out.println("隨機了"+count+"次");
}
/*
* 判斷1~10000之間有多少個7的倍數
*/
public static void abc24(){
int count=0;
for(int i=1;i<=10000;i++){
if(i%7==0){
count++;
}
}
System.out.println("共有"+count+"個7的倍數");
}
/*
* A
* AB
* ABC
* ABCD
* ABCDE
*/
public static void abc25(){
for(int i=1;i<=5;i++){
char a='A';
for(int j=1;j<=i;j++){
System.out.print(a);
a++;
}
System.out.println();
}
}
/*
* A
* BB
* CCC
* DDDD
* EEEEE
*/
public static void abc26(){
char a='A';
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
System.out.print(a);
}
a++;
System.out.println();
}
}
/*
* A
* BC
* DEF
* GHIJ
* KLMNO
*/
public static void abc27(){
char a='A';
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
System.out.print(a);
a++;
}
System.out.println();
}
}
/*
* *****
* * *
* * *
* * *
* *****
*/
//方法一
public static void abc28(){
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(i==2||i==3||i==4){
if(j==2||j==3||j==4){
System.out.print(" ");
continue;
}
}
System.out.print("*");
}
System.out.println();
}
}
//方法二
public static void abc29(){
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(i>=2&&i<=4){
if(j==1||j==5){
System.out.print("*");
}else{
System.out.print(" ");
}
}else{
System.out.print("*");
}
}
System.out.println();
}
}
/*
* *
* **
* * *
* * *
* *****
*/
//方法一
public static void abc30(){
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
if(i==3&&j==2){
System.out.print(" ");
}else if(i==4&&(j==2||j==3)){
System.out.print(" ");
}else{
System.out.print("*");
}
}
System.out.println();
}
}
//方法二
public static void abc31(){
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
if(i==j||j==1){
System.out.print("*");
}else if(i==5){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
/*
* *
* **
* ***
* ****
* *****
*/
//方法一
public static void abc32(){
for(int i=1;i<=5;i++){
for(int j=5;j>=1;j--){
if(j-i>0){
System.out.print(" ");
}else{
System.out.print("*");
}
}
System.out.println();
}
}
//方法二
public static void abc33(){
for(int i=1;i<=5;i++){
for(int k=(5-i);k>0;k--){
System.out.print(" ");
}
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
/*
* 已知S=1*2*3*......*n,計算出S不大於5000時n的最大值
*/
//方法一
public static void abc34(){
int sum=1;
int num=0;
for(int i=1;;i++){
sum=sum*i;
num=i;
if(sum>5000){
break;
}
}
System.out.println(num-1);
}
//方法二
public static void abc35(){
int sum=1;
int num=0;
do{
num++;
sum*=num;//sum=sum*num
}while(sum<5000);
System.out.println(num-1);
}
//方法三
public static void abc36(){
int sum=1;
int num=0;
while(sum<5000){
num++;
sum=sum*num;
}
System.out.println(num-1);
}
/*
* 三個班的同學參加比賽,每個班五名同學
* 1.求出各班的總分和平均分
* 2.求出各班的最高分
* 3.求出全部分數中的最高分
*/
public static void abc37(){
Scanner sc=new Scanner(System.in);
int all_zg=0;
for(int i=1;i<=3;i++){
int gbzf=0;
int pj=0;
int zg=0;
for(int j=1;j<=5;j++){
System.out.println("請輸入"+i+"班的"+j+"同學的成績");
int num=sc.nextInt();
if(j==1){
zg=num;
}
gbzf+=num;
if(num>zg){
zg=num;
}
if(j==5){
System.out.println(i+"班總分="+gbzf);
System.out.println(i+"班平均="+(gbzf/5));
System.out.println(i+"班最高="+zg);
}
}
if(all_zg<zg){
all_zg=zg;
}
System.out.println("全部最高"+all_zg);
}
}
/*
* 100~200之間有哪些數是質數?
*/
public static void abc38(){
for(int i=100;i<=200;i++){
boolean a=true;
for(int j=2;j<=i-1;j++){
if(i%j==0){
a=false;
}
}
if(a){
System.out.print("質數為:"+i+"\t");
}
}
System.out.println();
}
/*
* 求1+(1+2)+(1+2+3)+(1+2+3+4)+...(1+2+3+..+10)的和
*/
public static void abc39(){
int sum=0;
for(int i=1;i<=10;i++){
int num=0;
for(int j=1;j<=i;j++){
num=num+j;
}
sum=num+sum;
}
System.out.println("求得的和為:"+sum);
}
/*
* 求1+(1*2)+(1*2*3)+(1*2*3*4)+(1*2*3*4*5)的和
*/
public static void abc40(){
int sum=0;
for(int i=1;i<=5;i++){
int num=1;
for(int j=1;j<=i;j++){
num=num*j;
}
sum=num+sum;
}
System.out.println("求得的和為:"+sum);
}
/*
* 100元買100只雞
* 公雞五元一只;
* 母雞3元一只;
* 小雞一元3只;
* 問公雞、母雞和小雞各多少只?
*/
public static void abc41(){
for(int gj=0;gj<=20;gj++){
for(int mj=0;mj<=33;mj++){
for(int xj=0;xj<=100;xj++){
if(gj+mj+xj==100&&(gj*5+mj*3+xj/3==100)&&xj%3!=0){
System.out.println("公雞為"+gj+"只\t"+"母雞為"+mj+"只\t"+"小雞為"+xj+"只");
}
}
}
}
}
/*
* 婚禮上的謊言
三個新郎為A、B、C,三個新娘為X、Y、Z。
有人想知道究竟誰和誰結婚,
於是就問新人中的三位,得到如下提示:
A說他將和X結婚; A!=X X!=C C!=Z
X說她的未婚夫是C,
C說他將和Z結婚。
這個人事後知道他們在開玩笑,全是假話,
那麼,究竟誰與誰結婚呢?
*/
public static void abc42(){
for(char A='X';A<='Z';A++){
for(char B='X';B<='Z';B++){
for(char C='X';C<='Z';C++){
if(A!='X'&&C!='X'&&C!='Z' &&A!=B&&B!=C&&C!=A){
System.out.println("新郎A將和新娘"+A+"結婚");
System.out.println("新郎B將和新娘"+B+"結婚");
System.out.println("新郎C將和新娘"+C+"結婚");
}
}
}
}
}
/*
* 有1、2、3、4個數字,能組成多少個無重復數字的三位數?都是多少?
*/
public static void abc43(){
int count=0;
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
if(i!=j&&i!=k&&j!=k){
count++;
System.out.println(count+"組成的三位數為:"+i+j+k);
}
}
}
}
}
/*數組
* 1.int [] a=new int[10];//10表示10個空間
* 賦值 a[0]=8;//從0開始
* a[1]==10;
* 2.int [] a={5,6,7,8,9};
* 3.int [] a=new int[]{5,6,7,8,9};
*
* 定義一個數組,由鍵盤輸入值來賦值,並輸出該數組的各值
*/
public static void abc44(){
Scanner sc=new Scanner(System.in);
int [] a=new int[5];
for(int i=0;i<=a.length-1;i++){
System.out.println("請輸入第"+(i+1)+"個數");
a[i]=sc.nextInt();
}
for(int b:a){
System.out.print(b+"\t");
}
}
/*
* 由鍵盤輸入范圍和個數的隨機數數組,求出隨機生成的數組的最大值和最小值,並求出他們的和。
*/
public static void abc45(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入多少以內的隨機數:");
int i=sc.nextInt();
System.out.println("請確定要多少個隨機數:");
int j=sc.nextInt();
int [] a=new int[j];
for(int s=0;s<=a.length-1;s++){
a[s]=(int)(Math.random()*i);
}
int sum=0,min=0,max=0;
boolean cc=true;
for(int b:a){
sum=sum+b;
System.out.print(b+"+");
if(cc){
min=b;
cc=false;
}
if(b<min){
min=b;
}
if(b>max){
max=b;
}
}
System.out.print("="+sum);
System.out.println("\n最大值是:"+max+"\n最小值是:"+min);
}
/*
* 用隨機數給一個整型數組賦值,並對數組求和。(范圍自定)
*/
public static void abc46(){
int [] a=new int[5];
for(int i=0;i<=a.length-1;i++){
a[i]=(int)(Math.random()*100);
}
int sum=0;
for(int b:a){
sum=sum+b;
System.out.println(b);
}
System.out.println("和為:"+sum);
}
/*
* 對一組已經賦值的int類型的數組,找出其中的最大值和最小值
*/
public static void abc47(){
int [] a={10,9,99,2,8,11,55};
int max=0;
int min=0;
for(int i=0;i<=a.length-1;i++){
if(i==0){
max=a[i];
min=a[i];
}
if(max<a[i]){
max=a[i];
}
if(min>a[i]){
min=a[i];
}
}
System.out.println("最大值為:"+max);
System.out.println("最小值為:"+min);
}
/*
* 查找一個數,是否存在於數組當中,在數組的第幾位
*/
public static void abc48(){
int [] a={44,13,12,8,9,75,45,10};
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個數");
int num=sc.nextInt();
int count=0;
//方法一 for(int b:a){
// count++;
// if(b==num){
// break;
// }
// }
for(int i=0;i<=a.length-1;i++){
if(a[i]==num){
count=i+1;
break;
}
}
System.out.println("在第幾位:"+count);
}
/*冒泡排序(兩兩比較,兩兩交換)
*
* 對一組已經賦值的int類型的數組按照順序的方式排序
*/
public static void abc49(){
int [] a={12,53,32,46,199,17,75,54};
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length-i-1;j++){
if(a[j]>a[j+1]){
int b=a[j];
a[j]=a[j+1];
a[j+1]=b;
}
}
}
for(int c:a){
System.out.print("排序為:"+c+"\t");
}
}
/*
* 輸入某年某月某日,判斷這一天是這一年的第幾天?
*/
//方法一(用數組)
public static void abc50(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入年:");
int year=sc.nextInt();
System.out.println("請輸入月:");
int month=sc.nextInt();
System.out.println("請輸入日:");
int day=sc.nextInt();
int [] m={31,28,31,30,31,30,31,31,30,31,30,31};
int sum=0;
for(int i=0;i<month-1;i++){//把輸入月份-1的天數相加
sum=sum+m[i];
}
if(year%4==0&&year%100!=0||year%400==0){
if(month>2){
sum++;
}
}
sum=sum+day;
System.out.println("今年的第"+sum+"天");
}
//方法二(用switch)
public static void abc51(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入年:");
int year=sc.nextInt();
System.out.println("請輸入月:");
int month=sc.nextInt();
System.out.println("請輸入日:");
int day=sc.nextInt();
int sum=0;
int february=28;
if(year%4==0&&year%100!=0||year%400==0){
february=29;
}
switch(month){
case 1:sum=day;break;
case 2:sum=31+day;break;
case 3:sum=31+february+day;break;
case 4:sum=31+february+31+day;break;
case 5:sum=31+february+31+30+day;break;
case 6:sum=31+february+31+30+31+day;break;
case 7:sum=31+february+31+30+31+30+day;break;
case 8:sum=31+february+31+30+31+30+31+day;break;
case 9:sum=31+february+31+30+31+30+31+31+day;break;
case 10:sum=31+february+31+30+31+30+31+31+30+day;break;
case 11:sum=31+february+31+30+31+30+31+31+30+31+day;break;
case 12:sum=31+february+31+30+31+30+31+31+30+31+30+day;break;
default :System.out.println("輸入錯誤");
}
System.out.println(year+"年"+month+"月"+day+"日是今天的第"+sum+"天");
}
/*
* 火車票價格打印,
哈爾濱到廣州的火車,有9個停靠站(包括起點站和終點站)
分別是:"哈爾濱","長春","沈陽","天津","北京","石家莊","鄭州","武漢","廣州"。
從哈爾濱到各個站的票價分別是:
哈爾濱→哈爾濱 :0元
哈爾濱→長春 : 49元
哈爾濱→沈陽 : 77元
哈爾濱→天津 : 98元
哈爾濱→北京 : 136元
哈爾濱→石家莊 :195元
哈爾濱→鄭州 : 243元
哈爾濱→武漢 : 302元
哈爾濱→廣州 : 397元
長春到沈陽的票價=77(哈爾濱→沈陽)-49(哈爾濱→長春),依此類推,求輸入任意起點站到任意終點站的票價。
最後顯示結果如下例:
請輸入起點站:北京
請輸入終點站:武漢
從北京到武漢的票價為:166元
若輸入起點站或終點站不在7個停靠站之內,提示用戶:
起點站(或終點站)輸入錯誤,該站不是停靠站。
*/
public static void abc52(){
String [] name={"哈爾濱","長春","沈陽","天津","北京","石家莊","鄭州","武漢","廣州"};
int [] price={0,49,77,98,136,195,243,302,397};
Scanner sc=new Scanner(System.in);
int start_con=-1;//輸入起點站名稱的下標
int end_con=-1;//存儲終點站下標
while(true){ //判斷輸入的起點站存在於數組當中
System.out.println("請輸入起點站名稱:");
String s_name=sc.next();
for(int i=0;i<name.length;i++){
if(s_name.equals(name[i])){
start_con=i;
}
}
if(start_con==-1){
System.out.println("對不起,我們沒有賣這個站的票");
}else{
break;
}
}
while(true){
System.out.println("請輸入終點站名稱:");
String s_name=sc.next();
for(int i=0;i<name.length;i++){
if(s_name.equals(name[i])){
end_con=i;
}
}
if(start_con==end_con){
System.out.println("起點站和終點站不能一樣!");
continue;
}
if(end_con==-1){
System.out.println("對不起,我們沒有賣這個站的票");
}else{
break;
}
}
System.out.println("從"+name[start_con]+"到"+name[end_con]+
"的車票價格:"+(price[end_con]-price[start_con])+"元");
}
/*
*
* 利用數組保存數據,完成超市小票的打印 如:
* 請輸入購買商品:毛巾
* 請輸入單價:25.0
* 請輸入購買數量:2
* 請輸入購買商品:盆
* 請輸入單價:15.0
* 請輸入購買數量:3
*
* ======歡迎光臨**超市===========
* 商品名稱 單價 數量 總價
* 毛巾 25.0 2 50.0
* 盆 15.0 3 45.0
*
*
* 您一共消費:95.0元
*/
public static void abc53(){
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要購買商品的種類:");
int count = sc.nextInt();
double price=0;
String[] str = new String[count];
double[] dj = new double[count];
int[] num = new int[count];
double[] money = new double[count];
for (int i = 0; i <= count - 1; i++) {
System.out.println("請輸入商品名稱:");
str[i] = sc.next();
System.out.println("請輸入商品單價:");
dj[i] = sc.nextDouble();
System.out.println("請輸入商品數量:");
num[i] = sc.nextInt();
money[i] = dj[i] * num[i];
}
System.out.println("======歡迎光臨摩爾超市===========");
System.out.println("商品名稱" + "\t" + "商品單價" + "\t" + "商品數量" + "\t" + "總價");
for (int i = 0; i <= count - 1; i++) {
System.out.println(str[i] + "\t" + dj[i] + "\t" + num[i] + "\t"
+ money[i]);
price+=money[i];
}
System.out.println("您一共消費"+price);
}
/*
* 將商品的名稱以及單價存儲在數組中,用戶輸入商品名稱,只有當貨架上有該商品時,
* 將該商品存入客戶購買商品的數組中,從而輸出超市小票 如:
* 請輸入商品名稱:毛巾
* (如果沒有該商品) 對不起,沒有這件商品 (如果有該商品) 請輸入購買數量:4
*
* 循環。。。。直到用戶退出為止
*
*
* ======歡迎光臨**超市===========
* 商品名稱 單價 數量 總價
* 毛巾 25.0 2 50.0
* 盆 15.0 3 45.0
*
* 您一共消費:95.0元
*
* 注意:商品的單價不需要輸入,而是由之前定義的數據得到
*/
public static void abc54(){
String [] name={"毛巾","盆","杯子","洗衣粉","風扇","菜刀","書包"};
double [] price={15,12,5,10,40,26,31};
Scanner sc=new Scanner(System.in);
System.out.println("請輸入你購買商品的種類:");
int count=sc.nextInt();
String [] buy_name=new String[count];//名稱
int [] buy_num=new int[count];//數量
double [] buy_price=new double[count];//單價
double sum_price=0;//總價
int con=-1;
for(int i=0;i<3;i++){
System.out.println("請輸入你購買商品的名稱:");
String str=sc.next();
for(int j=0;j<name.length;j++){
if(str.equals(name[j])){
con=j;
}
}
if(con==-1){//判斷商品是否存在
i--;
System.out.println("你購買的商品不存在");
}else{
System.out.println("請輸入購買的數量:");
buy_num[i]=sc.nextInt();
buy_name[i]=name[con];
buy_price[i]=price[con];
}
}
System.out.println("======歡迎光臨摩爾超市===========");
System.out.println("商品名稱\t單價\t數量\t總價");
for(int i=0;i<count;i++){
System.out.println(buy_name[i]+"\t"+buy_price[i]+
"\t"+buy_num[i]+"\t"+(buy_num[i]*buy_price[i]));
sum_price+=(buy_num[i]*buy_price[i]);
}
System.out.println("您一共消費:"+sum_price+"元");
}
/*多維數組(二維)
* 定義一個二維數組,在定義時給定數組長度,並通過輸入為該數組賦值
*/
public static void abc55(){
Scanner sc=new Scanner(System.in);
int [][] a=new int[4][3];
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
System.out.println("請輸入一個數");
a[i][j]=sc.nextInt();
}
}
for(int [] b:a){
for(int c:b){
System.out.print(c+"\t");
}
System.out.println();
}
}
/*
* 定義一個第一層長度為3的二維數組,通過隨機數為每層數組定義長度,並通過length得到該數組的每層長度
*/
public static void abc56(){
int [][] a=new int[3][];
for(int i=0;i<a.length;i++){
int num=(int)(Math.random()*10+1);
a[i]=new int[num];
System.out.println(a[i].length);
}
}
/*
* 三個同學四門課程
* 1、為每位同學的每門課程打分
* 2、求每個同學的平均分
* 3、求每門課程的平均分
* 4、求所有成績中的最高分
* 5、求所有成績中100分有幾個。
*/
public static void abc57(){
Scanner sc=new Scanner(System.in);
int [][] cj=new int[3][4];
for(int i=0;i<cj.length;i++){
for(int j=0;j<cj[i].length;j++){
System.out.println("請輸入第"+(i+1)+"位學生的第"+(j+1)+"課成績:");
cj[i][j]=sc.nextInt();
}
}
//求每個同學的平均分
for(int i=0;i<cj.length;i++){
int pj=0;
for(int j=0;j<cj[i].length;j++){
pj+=cj[i][j];
}
System.out.println("第"+(i+1)+"同學的成績平均分是:"+(pj/4));
}
//求每門課程的平均分
for(int i=0;i<4;i++){
int num=0;
for(int j=0;j<3;j++){
num+=cj[j][i];
}
System.out.println("第"+(i+1)+"門課程的平均成績是:"+(num/3));
}
//求所有成績中的最高分
int sum=0;
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
if(sum<cj[i][j]){
sum=cj[i][j];
}
}
}
System.out.println("最高成績是:"+sum);
//求所有成績中100分有幾個
int count=0;
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
if(cj[i][j]==100){
count++;
}
}
}
System.out.println("成績中100分有"+count+"個");
}
/*
* 將一個數組倒序輸出.如:原數組:{56,89,4,1,3,69}
* 倒序為:{69,3,1,4,89,56}
*/
public static void abc58(){
int [] a={56,89,4,1,3,69};
for(int i=a.length-1;i>=0;i--){
System.out.print(a[i]+"\t");
}
}
//選擇排序
//原理:每次都找到當次最大的數,按大小順序依次放入數組相應位置
//比如:第一次先找到最大的數並記下其位置,如果其不在數組第一位,
//則將其與第一位交換,使最大數置於第一位
//第二次再循環查找第二大的數並記下其位置,如果其不在數組第二位,
//則將其與第二位交換,使最大數置於第二位
//依次類推.........................................
//第i次再循環查找第i大的數並記下其位置,如果其不在數組第 i位,
//則將其與第 i位交換,使最大數置於第 i位
public static void abc59(){
int[] a = {25,15,42,16,12,36};
int max = 0;
for(int i=0;i<a.length;i++){//查找第 i大的數,直到記下第 i大數的位置
max = i;
for(int j=i+1;j<a.length;j++){
if(a[max]<a[j]){
max = j;//記下較大數位置,再次比較,直到最大
}
}
if(i!=max){//如果第 i大數的位置不在 i,則交換
int tmp = a[i];
a[i] = a[max];
a[max] = tmp;
}
}
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}
有錯誤的地方望各位好友幫忙修改,謝謝!