本人初学java,自己写的答案。有错误的地方请各位留言指正。
- 数组查找操作:定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”,不包含就打印出“No”。
public class Task1 {
public static void main(String[] args) throws FractionException {
Scanner input = new Scanner(System.in);
System.out.println("请输入您的分数");
double f = input.nextDouble();
Student stu = new Student();
stu.setFraction(f);
}
}
class Student{
private double fraction;
public double getFraction() {
return fraction;
}
public void setFraction(double fraction) throws FractionException {
if(fraction<0||fraction>100) {
throw new FractionException("分数必须在0-100之间");
}else {
this.fraction = fraction;
}
}
}
class FractionException extends Exception{
public FractionException() {
}
public FractionException(String message) {
super(message);
}
}
- 获取数组最大值和最小值操作:利用Java的Math类的random()方法,编写函数得到0到n之间的随机数,n是参数。并找出产生50个这样的随机数中最大的、最小的数,并统计其中>=60的有多少个。
提示:使用 int num=(int)(n*Math.random());获取随机数。
public class Task2 {
public static void main(String[] args) throws Exception {
Scanner num = new Scanner(System.in);
System.out.println("请输入三个整数");
int a1 = num.nextInt();
int a2 = num.nextInt();
int a3 = num.nextInt();
isTriangle(a1,a2,a3);
}
public static void isTriangle(int a,int b,int c) throws Exception {
if(a+b<c||a+c<b||b+c<a) {
throw new Exception("a,b,c不能构成三角形");
}else {
System.out.println("三角形的三个边长为:"+a+","+b+","+c);
}
}
}
`3. 数组逆序操作:定义长度为10的数组,将数组元素对调,并输出对调前后的结果。
思路:把0索引和arr.length-1的元素交换,把1索引和arr.length-2的元素交换…..
只要交换到arr.length/2的时候即可。``
public class Task3 {
public static void main(String[] args) {
Scanner farction = new Scanner(System.in);
System.out.println("请输入学生个数");
int n = farction.nextInt();
double[] f = new double[n];
System.out.println("请输入每个学生的分数");
double sum = 0;
for(int i=0;i<n;i++) {
f[n-1] = farction.nextDouble();
sum = sum+f[n-1];
if(f[n-1]<0) {
try {
throw new Exception("分数必须是正数或者0");
} catch (Exception e) {
e.printStackTrace();
System.out.println("请重新输入分数");
continue ;
}finally {
}
}
}
System.out.println("学生的平均成绩为:"+sum/n);
}
}