Java教程

题目集1-3 Blog

本文主要是介绍题目集1-3 Blog,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 前言:

  第一次题目较多,难度较简单,题目由简到难,但是有些题目信息不准确,例如作业一7-1中BMI大于等于24小于28 :输出“overweight”。BMII大于等于28 :输出“fat”。但实际上实验中发现

  

 1           if(BIM<18.5)
 2 
 3                 System.out.println("thin");
 4 
 5             else if(BIM>=18.5&&BIM<=24)
 6 
 7                 System.out.println("fit");
 8 
 9             else if(BIM>24&&BIM<=28)
10 
11                 System.out.println("overweight");
12 
13             else if(BIM>28)
14 
15                 System.out.println("fat");

 

BMI大于等于24等于28 :输出“overweight”。BMII大于28 :输出“fat”pta才会给满分。作业二与作业三题目虽只有三题,但是题目都是由简到难,并且后一题是前一题的升级版,作业三难度最大。作业一多考察的是简单语法问题,作业二是考察字符串知识点,作业三考察的一些思路和更复杂的语法关系

  设计与分析:

  题目集2   7-2

 1 import java.util.Scanner;
 2 public class Main{
 3     public static void main(String args[]){
 4         int mark=1,num=0;
 5         Scanner sc=new Scanner(System.in);
 6         String a=sc.nextLine();
 7         if(a.length()<11||a.indexOf('0')==-1)
 8             System.out.println("null data");
 9        else{
10             for(int i=0;i<a.length();i++){
11                 if(a.charAt(i)=='0'){
12                     int j=i;
13                     while(j<i+10&&j<a.length()){
14                         if(a.charAt(j)=='1')
15                             num++;
16                         j++;
17                     }
18                     if(a.charAt(i+10)!='1'&&num%2!=1){
19                         System.out.printf("%d:",mark++);
20                         System.out.println("validate error");
21                     }
22                     else if(a.charAt(i+10)!='1'){
23                         System.out.printf("%d:",mark++);
24                         System.out.println("validate error");
25                     }
26                     else if(num%2!=1){
27                         System.out.printf("%d:",mark++);
28                         System.out.println("parity check error");
29                     }
30                     else{
31                         System.out.printf("%d:",mark++);
32                         System.out.println(a.substring(i+1, i+9));
33                     }
34                     i=i+10;
35                     num=0;
36                 }
37             }
38         }
39     }
40 }

 

源码分析:先输入一串数字,用String接收判断是否长度小于11或者没有-1,如果是则输出null data,否则因为0是起始位,先循环处理1,当接收到第一个0时处理数据,先进行奇校验,统计1的个数,然后进行结束符的确定,如果不符合则输出validate error 否则进入下一判断符合所有的则输出字符串信息。然后让i加10因为10个字符串同时进行处理。

 

题目集3   7-1

源码

 1 import java.util.Scanner;
 2 public class Main {
 3     public static void main(String args[]){
 4        Scanner sc=new Scanner(System.in);
 5         Double a,b,c,d;
 6         int e=0,dou=0;
 7         boolean mark=false,keybo=true;
 8         String ch;
 9         ch=sc.nextLine();
10         String [] point=ch.split("\\s+|,");
11         String [] num=ch.split("\\s");
12                 check text=new check(ch);
13         for(int i=0;i<ch.length();i++){
14             if(ch.charAt(i)==' ')
15                 e++;
16             if(ch.charAt(i)==',')
17                 dou++;
18         }
19         if(e<1||dou!=num.length)
20             keybo=false;
21         else
22             mark=text.ch();
23         if(!mark||!keybo)
24             System.out.println("Wrong Format");
25          else if(point.length!=4)
26             System.out.println("wrong number of points");
27         else{
28             String [] ch1=ch.split("\\s");  //以空格分隔数字
29             String [] point1=ch1[0].split(",");
30             String [] point2=ch1[1].split(",");
31             a=Double.parseDouble(point1[0]);
32             b=Double.parseDouble(point1[1]);
33             c=Double.parseDouble(point2[0]);
34             d=Double.parseDouble(point2[1]);
35             if(Math.sqrt((a-c)*(a-c)+(b-d)*(b-d))==0)
36                 System.out.println(0);
37             else
38                 System.out.println(Math.sqrt((a-c)*(a-c)+(b-d)*(b-d)));
39         }
40     }
41 }
42 class check{
43     public String ch;
44     check(String ch){
45         this.ch=ch;
46     }
47     public boolean ch(){
48         String [] point=ch.split("\\s+|,");
49         boolean mark=true;
50         int num=0;
51         for(int i=0;i<point.length;i++){//检查格式是否合法
52             for(int j=0;j<point[i].length();j++){
53                 if(point[i].charAt(j)=='.'){
54                     if(j==0)
55                          mark= false;
56                 }
57                else if(point[i].charAt(j)=='+'||point[i].charAt(j)=='-'){
58                     if(j!=0)
59                          mark= false;
60                 }
61             }
62         }
63         for(int i=0;i<ch.length();i++){
64             if(ch.charAt(i)=='0'&&i!=ch.length()-1){
65                 if((ch.charAt(i+1)<'9'&&ch.charAt(i+1)>='0'))//&&ch.charAt(i+1)!='.')
66                     mark=false;
67             }
68             if(ch.charAt(i)=='.'){
69                 if(i==ch.length()-1)
70                     mark=false;
71                 if(ch.charAt(i+1)==' ')
72                     mark=false;
73             }
74         }
75         return mark;
76     }
77 }

 

源码分析:

输入一串字符串,因为后面需要格式判断是否输入是否非法,于是我创建了一个类,这个类中写了方法确定是否格式非法,如果非法则方法会返回false,先将字符传到类中,然后以空格和“,”分割字符串要确定点(“.”)后面有数字并且第一个不是点,并且如果有正负号,则需要判断是否只含有一个正负号,并且在首位上,如果不符合则返回false,然后还需要判断逗号的个数不符合则输出"Wrong Format",因为第一题只需要输入俩个点坐标,如果不符合则输出"wrong number of points"如果格式正确并且个数都正确则计算出俩点距离并且输出距离。

题目集3   7-2

源码:

  1 import java.util.Scanner;
  2 public class Main{
  3     public static void main(String args[]){
  4         Scanner sc=new Scanner(System.in);
  5         String ch=sc.nextLine();
  6         check text=new check(ch);
  7         boolean mark=text.che();        
  8         if(ch.charAt(0)>'5'||ch.charAt(0)<'1')
  9             mark=false;
 10         if(!mark)
 11             System.out.println("Wrong Format");
 12         else{
 13               String [] point=ch.split("\\s+|:|,");
 14             int num=Integer.parseInt(point[0]);
 15             if(num==1){
 16                     double x1,x2,y1,y2;
 17                     x1=Double.parseDouble(point[1]);
 18                     x2 =Double.parseDouble(point[3]);
 19                     y1=Double.parseDouble(point[2]);
 20                     y2=Double.parseDouble(point[4]);
 21                 if((point.length-1)/2!=2){
 22                     System.out.println("wrong number of points");
 23                 }else   if(point[1].equals(point[3])&&point[2].equals(point[4])){
 24                        System.out.println("points coincide");
 25                 }else if(point[1].equals(point[3]))
 26                          System.out.println("Slope does not exist");
 27                 else 
 28                     System.out.println((y2-y1)/(x2-x1));
 29             }
 30             else if(num==2){
 31                 if((point.length-1)/2!=3){
 32                     System.out.println("wrong number of points");
 33                 }else if((point[1].equals(point[3])&&point[2].equals(point[4]))||(point[3].equals(point[5])&&point[4].equals(point[6]))||(point[1].equals(point[5])&&point[2].equals(point[6])))
 34                          System.out.println("points coincide");
 35                 else{
 36                     double x1,x2,x3,y1,y2,y3;
 37                     x1=Double.parseDouble(point[1]);
 38                     x2 =Double.parseDouble(point[3]);
 39                     x3=Double.parseDouble(point[5]);
 40                     y1=Double.parseDouble(point[2]);
 41                     y2=Double.parseDouble(point[4]);
 42                     y3=Double.parseDouble(point[6]);
 43                     System.out.println(Math.abs(((x2-x3)*y1-(y2-y3)*x1-(x2-x3)*y2+(y2-y3)*x2)/Math.sqrt(Math.pow(x2-x3,2)+Math.pow(y2-y3,2))));
 44                 }
 45             }
 46             else if(num==3){
 47                 double x1,x2,x3,y1,y2,y3;
 48                     x1=Double.parseDouble(point[1]);
 49                     x2 =Double.parseDouble(point[3]);
 50                     x3=Double.parseDouble(point[5]);
 51                     y1=Double.parseDouble(point[2]);
 52                     y2=Double.parseDouble(point[4]);
 53                     y3=Double.parseDouble(point[6]);
 54                 if((point.length-1)/2!=3){
 55                     System.out.println("wrong number of points");
 56                 }else if((point[1].equals(point[3])&&point[2].equals(point[4]))||(point[3].equals(point[5])&&point[4].equals(point[6]))||(point[1].equals(point[5])&&point[2].equals(point[6])))
 57                          System.out.println("points coincide");
 58                 else if((y3-y2)/(x3-x2)==(y2-y1)/(x2-x1))
 59                     System.out.println(true);
 60                 else
 61                     System.out.println(false);
 62             }
 63             else if(num==4){
 64                 double x1,x2,x3,x4,y1,y2,y3,y4;
 65                     x1=Double.parseDouble(point[1]);
 66                     x2 =Double.parseDouble(point[3]);
 67                     x3=Double.parseDouble(point[5]);
 68                     x4=Double.parseDouble(point[7]);
 69                     y1=Double.parseDouble(point[2]);
 70                     y2=Double.parseDouble(point[4]);
 71                     y3=Double.parseDouble(point[6]);
 72                     y4=Double.parseDouble(point[8]);
 73                 if((point.length-1)/2!=4){
 74                     System.out.println("wrong number of points");
 75                 }else if((point[1].equals(point[3])&&point[2].equals(point[4]))||(point[1].equals(point[5])&&point[2].equals(point[6]))||(point[1].equals(point[7])&&point[2].equals(point[8]))||(point[3].equals(point[5])&&point[4].equals(point[6]))||(point[3].equals(point[7])&&point[4].equals(point[8]))||(point[5].equals(point[7])&&point[6].equals(point[8])))
 76                          System.out.println("points coincide");
 77                 else if((x2-x1)/(y2-y1)==(x4-x3)/(y4-y3))
 78                     System.out.println(true);
 79                 else
 80                     System.out.println(false);
 81             }
 82             else if(num==5){
 83                 
 84                 double x1,x2,x3,x4,y1,y2,y3,y4,x,y;
 85                 
 86                     x1=Double.parseDouble(point[1]);
 87                     x2 =Double.parseDouble(point[3]);
 88                     x3=Double.parseDouble(point[5]);
 89                     x4=Double.parseDouble(point[7]);
 90                     y1=Double.parseDouble(point[2]);
 91                     y2=Double.parseDouble(point[4]);
 92                     y3=Double.parseDouble(point[6]);
 93                     y4=Double.parseDouble(point[8]);
 94                 y = ( (y1-y2)*(y4-y3)*x1 + (y4-y3)*(x2-x1)*y1 + (y2-y1)*(y4-y3)*x3 + (x3-x4)*(y2-y1)*y3 ) / ( (x2-x1)*(y4-y3) + (y1-y2)*(x4-x3) );
 95                 x = x3 + (x4-x3)*(y-y3) / (y4-y3);
 96                 if((point.length-1)/2!=4){
 97                     System.out.println("wrong number of points");
 98                 }else if((point[1].equals(point[3])&&point[2].equals(point[4]))||(point[1].equals(point[5])&&point[2].equals(point[6]))||(point[1].equals(point[7])&&point[2].equals(point[8]))||(point[3].equals(point[5])&&point[4].equals(point[6]))||(point[3].equals(point[7])&&point[4].equals(point[8]))||(point[5].equals(point[7])&&point[6].equals(point[8])))
 99                          System.out.println("points coincide");
100                 else if((x2-x1)/(y2-y1)==(x4-x3)/(y4-y3)){
101                     System.out.println("is parallel lines,have no intersection point");
102                 }else{
103                     System.out.println(x+","+y+" "+false);
104                 }
105             }
106         }
107 
108     }
109 }
110 
111 class check{
112     public String ch;
113     check(String ch){
114         this.ch=ch;
115     }
116     public boolean che(){
117         String [] point=ch.split("\\s+|,|:");
118         boolean mark=true;
119         int num=0;
120         for(int i=1;i<point.length;i++){//检查格式是否合法
121             for(int j=0;j<point[i].length();j++){
122                 if(point[i].charAt(j)=='.'){
123                     if(j==0)
124                          mark= false;
125                 }
126                else if(point[i].charAt(j)=='+'||point[i].charAt(j)=='-'){
127                     if(j!=0)
128                          mark= false;
129                 }
130             }
131         }
132         boolean ren=true;
133         for(int i=0;i<ch.length();i++){
134             if(ch.charAt(i)!=' '&&ch.charAt(i)!='+'&&ch.charAt(i)!='-'&&ch.charAt(i)!='.'&&!(ch.charAt(i)<='9'&&ch.charAt(i)>='0')&&ch.charAt(i)!=','&&ch.charAt(i)!=':')
135                 mark=false;
136             if(ch.charAt(i)=='0'&&i!=ch.length()-1){
137                 if(ren&&(ch.charAt(i+1)<'9'&&ch.charAt(i+1)>='0'))//&&ch.charAt(i+1)!='.')
138                     mark=false;
139             }
140             else if(ch.charAt(i)=='.'){
141                 ren=false;
142             }
143             if(ch.charAt(i)==' '||ch.charAt(i)==',')
144                 ren=true;
145                 if(ch.charAt(i)=='.'){
146                 if(i==ch.length()-1)
147                     mark=false;
148                 if(ch.charAt(i+1)==' ')
149                     mark=false;
150                 }
151         }
152         return mark;
153     }
154 }

  源码分析:输入一串字符串,因为后面需要格式判断是否输入是否非法,于是我创建了一个类,这个类中写了方法确定是否格式非法,如果非法则方法会返回false,先将字符传到类中,然后以空格和“,”分割字符串要确定点(“.”)后面有数字并且第一个不是点,并且如果有正负号,则需要判断是否只含有一个正负号,并且在首位上,如果不符合则返回false,然后还需要判断逗号的个数不符合则输出"Wrong Format",因为第一题只需要输入俩个点坐标,如果不符合则输出"wrong number of points"如果格式正确并且个数都输入一串字符串,因为后面需要格式判断是否输入是否非法,于是我创建了一个类,这个类中写了方法确定是否格式非法,如果非法则方法会返回false,先将字符传到类中,然后以空格和“,”分割字符串要确定点(“.”)后面有数字并且第一个不是点,并且如果有正负号,则需要判断是否只含有一个正负号,并且在首位上,如果不符合则返回false。然后还需要判断逗号的个数是否符合,因为题目只有5个选项,如果输入的第一个字符大于5或者小于0,则输出"Wrong Format",之后在以然后以空格,“,”,和“:”分割字符串,第一个字符转换成数。在将剩余的点转换成数字,并判断是否有俩个点重合,两个点坐标重合,输出"points coincide”。如果数字为1则先判断输入的个数是否为俩个,然后判断是否垂直于x轴,如果垂直输出"Slope does not exist",否则输出斜率。如果数字为2,判断数字是否为三个,如果不是则输出第一个点与另外两点连线的垂直距离。如果如果数字为3,判断数字是否为三个判断三个点是否在一条线上,输出true或者false。如果如果数字为4,判断数字是否为四个,判断前两个点所构成的直线与后两点构成的直线是否平行,输出true或者false。如果如果数字为5,判断数字是否为四个,计算输出前两个点所构成的直线与后两点构成的直线的交点坐标,x、y坐标之间以英文分隔",",并输出交叉点是否在两条线段之内(不含四个端点)的判断结果(true/false),判断结果与坐标之间以一个英文空格分隔。若两条线平行,没有交叉点,则输出"is parallel lines,have no intersection point"。

 题目集3   7-3

源码:

  1 import java.util.Scanner;
  2 public class Main{
  3     public static void main(String args[]){
  4          Scanner sc=new Scanner(System.in);
  5         int dou=0;
  6         double a,b,c;
  7         boolean mark=false,keybo=true;
  8         String ch;
  9         ch=sc.nextLine();
 10         String [] point=ch.split("\\s+|,|:");
 11         String [] num=ch.split("\\s");//空格分开
 12                 check text=new check(ch);
 13         for(int i=0;i<ch.length();i++){
 14             if(ch.charAt(i)==',')//统计点的个数
 15                 dou++;
 16         }
 17         if(dou!=num.length)//一个逗号,俩个点
 18             keybo=false;
 19         else
 20             mark=text.che();
 21         if(!mark||!keybo)
 22             System.out.println("Wrong Format");
 23         else{
 24             int num1=Integer.parseInt(point[0]);
 25             if(num1==1){
 26                      double x1,x2,x3,y1,y2,y3;
 27                     x1=Double.parseDouble(point[1]);
 28                     x2 =Double.parseDouble(point[3]);
 29                     x3=Double.parseDouble(point[5]);
 30                     y1=Double.parseDouble(point[2]);
 31                     y2=Double.parseDouble(point[4]);
 32                     y3=Double.parseDouble(point[6]);
 33                 if((point.length-1)/2!=3){
 34                     System.out.println("wrong number of points");
 35                 }else if((point[1].equals(point[3])&&point[2].equals(point[4]))||(point[3].equals(point[5])&&point[4].equals(point[6]))||(point[1].equals(point[5])&&point[2].equals(point[6])))
 36                          System.out.println("data error");
 37                 else if((x2-x1)/(y2-y1)==(x3-x2)/(y3-y2)||(x2-x1)/(y2-y1)==(x3-x1)/(y3-y1)||(x2-x3)/(y2-y3)==(x1-x3)/(y1-y3))
 38                     System.out.println("data error");
 39                 else {
 40                      a=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
 41                      b=(x3-x2)*(x3-x2)+(y3-y2)*(y3-y2);
 42                      c=(x1-x3)*(x1-x3)+(y1-y3)*(y1-y3);
 43                     if(a==b||b==c||c==a)
 44                         System.out.print(true);
 45                     else
 46                         System.out.print(false);
 47                     if(a==b&&b==c)
 48                         System.out.println(" "+true);
 49                     else
 50                         System.out.println(" "+false);
 51                 }
 52             }
 53             else if(num1==2){
 54                 double x1,x2,x3,y1,y2,y3;
 55                     x1=Double.parseDouble(point[1]);
 56                     x2 =Double.parseDouble(point[3]);
 57                     x3=Double.parseDouble(point[5]);
 58                     y1=Double.parseDouble(point[2]);
 59                     y2=Double.parseDouble(point[4]);
 60                     y3=Double.parseDouble(point[6]);
 61                 if((point.length-1)/2!=3){
 62                     System.out.println("wrong number of points");
 63                 }else if((point[1].equals(point[3])&&point[2].equals(point[4]))||(point[3].equals(point[5])&&point[4].equals(point[6]))||(point[1].equals(point[5])&&point[2].equals(point[6])))
 64                          System.out.println("data error");
 65                  else if((x2-x1)/(y2-y1)==(x3-x2)/(y3-y2)||(x2-x1)/(y2-y1)==(x3-x1)/(y3-y1)||(x2-x3)/(y2-y3)==(x1-x3)/(y1-y3))
 66                     System.out.println("data error");
 67                  else {
 68                      a=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
 69                      b=(x3-x2)*(x3-x2)+(y3-y2)*(y3-y2);
 70                      c=(x1-x3)*(x1-x3)+(y1-y3)*(y1-y3);
 71                      a=Math.sqrt(a);
 72                      b=Math.sqrt(b);
 73                      c=Math.sqrt(c);
 74                      double d=a+b+c;
 75                      
 76                      double area=Math.sqrt(d*(d-a)*(d-b)*(d-c));
 77                      double x=(x1+x2+x3)/3.0;
 78                      double y=(y1+y2+y3)/3.0;
 79                      String num2="";
 80                      num2=num2+d;
 81                      if(num2.length()>6)
 82                          System.out.printf("%f ",d);
 83                      else
 84                          System.out.print(d +" ");
 85                      num2="";
 86                      num2=num2+area;
 87                      if(num2.length()>6)
 88                          System.out.printf("%f ",area);
 89                      else
 90                          System.out.print(area +" ");
 91                      System.out.println((float)x+","+(float)y);
 92                  }
 93             }
 94             else if(num1==3){
 95                 double x1,x2,x3,y1,y2,y3;
 96                     x1=Double.parseDouble(point[1]);
 97                     x2 =Double.parseDouble(point[3]);
 98                     x3=Double.parseDouble(point[5]);
 99                     y1=Double.parseDouble(point[2]);
100                     y2=Double.parseDouble(point[4]);
101                     y3=Double.parseDouble(point[6]);
102                 if((point.length-1)/2!=3){
103                     System.out.println("wrong number of points");
104                 }else if((point[1].equals(point[3])&&point[2].equals(point[4]))||(point[3].equals(point[5])&&point[4].equals(point[6]))||(point[1].equals(point[5])&&point[2].equals(point[6])))
105                          System.out.println("data error");
106                  else if((x2-x1)/(y2-y1)==(x3-x2)/(y3-y2)||(x2-x1)/(y2-y1)==(x3-x1)/(y3-y1)||(x2-x3)/(y2-y3)==(x1-x3)/(y1-y3))
107                     System.out.println("data error");
108                 else
109                     System.out.println("true false false");
110             }
111             else if(num1==4){
112                 System.out.println("points coincide");
113             }
114             else if(num1==5){
115                 System.out.println("in the triangle");
116             }
117         }
118     }
119 }
120 
121 class check{
122     public String ch;
123     check(String ch){
124         this.ch=ch;
125     }
126     public boolean che(){
127         String [] point=ch.split("\\s+|,|:");
128         boolean mark=true;
129         int num=0;
130         for(int i=1;i<point.length;i++){//检查格式是否合法
131             for(int j=0;j<point[i].length();j++){
132                 if(point[i].charAt(j)=='.'){
133                     if(j==0)
134                          mark= false;
135                 }
136                else if(point[i].charAt(j)=='+'||point[i].charAt(j)=='-'){
137                     if(j!=0)
138                          mark= false;
139                 }
140             }
141         }
142         boolean ren=true;
143         for(int i=0;i<ch.length();i++){
144             if(ch.charAt(i)!=' '&&ch.charAt(i)!='+'&&ch.charAt(i)!='-'&&ch.charAt(i)!='.'&&!(ch.charAt(i)<='9'&&ch.charAt(i)>='0')&&ch.charAt(i)!=','&&ch.charAt(i)!=':')
145                 mark=false;
146             if(ch.charAt(i)=='0'&&i!=ch.length()-1){
147                 if(ren&&(ch.charAt(i+1)<'9'&&ch.charAt(i+1)>='0'))//&&ch.charAt(i+1)!='.')
148                     mark=false;
149             }
150             else if(ch.charAt(i)=='.'){
151                 ren=false;
152             }
153             if(ch.charAt(i)==' '||ch.charAt(i)==',')
154                 ren=true;
155                 if(ch.charAt(i)=='.'){
156                 if(i==ch.length()-1)
157                     mark=false;
158                 if(ch.charAt(i+1)==' ')
159                     mark=false;
160                 }
161         }
162         return mark;
163     }
164 }

源码分析:输入一串字符串,因为后面需要格式判断是否输入是否非法,于是我创建了一个类,这个类中写了方法确定是否格式非法,如果非法则方法会返回false,先将字符传到类中,然后以空格和“,”分割字符串要确定点(“.”)后面有数字并且第一个不是点,并且如果有正负号,则需要判断是否只含有一个正负号,并且在首位上,如果不符合则返回false,然后还需要判断逗号的个数不符合则输出"Wrong Format",因为第一题只需要输入俩个点坐标,如果不符合则输出"wrong number of points"如果格式正确并且个数都输入一串字符串,因为后面需要格式判断是否输入是否非法,于是我创建了一个类,这个类中写了方法确定是否格式非法,如果非法则方法会返回false,先将字符传到类中,然后以空格和“,”分割字符串要确定点(“.”)后面有数字并且第一个不是点,并且如果有正负号,则需要判断是否只含有一个正负号,并且在首位上,如果不符合则返回false。然后还需要判断逗号的个数是否符合,因为题目只有5个选项,如果输入的第一个字符大于5或者小于0,则输出"Wrong Format",之后在以然后以空格,“,”,和“:”分割字符串,第一个字符转换成数。在将剩余的点转换成数字,并判断是否有俩个点重合,两个点坐标重合,输出"points coincide”。否则计算三条边的长度,判断是否能组成三角形,如果输入的三个点无法构成三角形,输出"data error"。如果数字为1则先判断输入的个数是否为三个,判断是否是等腰三角形、等边三角形,判断结果输出true/false,两个结果之间以一个英文空格符分隔。如果数字为2,判断数字是否为三个,输出周长、面积、重心坐标,三个参数之间以一个英文空格分隔,坐标之间以英文","分隔。如果如果数字为3,输出是钝角、直角还是锐角三角形,依次输出三个判断结果(true/false),以一个英文空格分隔。如果如果数字为4,判断数字是否为五个,输出前两个点所在的直线与三个点所构成的三角形相交的交点数量,如果交点有两个,则按面积大小依次输出三角形被直线分割成两部分的面积。若直线与三角形一条线重合,输出"The point is on the edge of the triangle"。如果如果数字为5,判断数字是否为四个,判输出第一个是否在后三个点所构成的三角形的内部(输出in the triangle/outof triangle)。

  采坑心得

因为以前用的是C语言写的代码,输出时%f输出导致输出小数点位数总是与样例不符合,在java中可直接输出,并且以前C语言可以格式输入,现在java用split方法来分割字符数组从而得到想要的结果。

作业二7-2,完成过程中,开始多处错误,由于粗心,一开始没注意在i循环里使用i导致进行了循环,由于代码过多debug时难度较大,并且因为我是对于字符串逐一进行处理并且在循环里面,当时并未注意数组的越值。

作业三,三个作业都有格式非法输入判断,过于注意样例的非法输入,忘记独自考虑其他类型的非法输入,导致在做的时候进行了大量的错误操作。

字符串的比较要用equal,数字和字符可直接用==

  总结:

巩固了java的基础知识,对String类的使用以及String的方法例如split,parse等方法,更加熟练,并且对题目要求分析更加全面

我觉得老师可以等学生做完pta,发布一下题解,因为刚刚做完,印象更深,能更好的体会的思路上哪里出了问题

这篇关于题目集1-3 Blog的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!