1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。
Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
···package test;
import java.util.Scanner;
public class cesi {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int num1=in.nextInt();
double num2=in.nextDouble();
String num3=in.next();
String num4=in.nextLine();
}
}···
2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
Math.random()返回的只是从0到1之间的小数,如果要50到100,就先放大50倍,即0到50之间,这里还是小数,如果要整数,就强制转换int,然后再加上50即为50~100.
最终代码:(int)(Math.random()*50) + 50
Random类产生的随机数,在其最大值范围内,按照概率均匀分布的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。
3.运行下列程序,结果是什么?查阅资料,分析为什么
结果是 “不等于0.3”因为在Java使用分数和指数来表示浮点类型的数据时,在加减的过程中,产生了浮点型误差,不能使用“==”来比较浮点类型数据的运算结果。
二
1.看商品猜价格
思路:设置商品随机数,需要声明每次猜测的次数,总的猜测次数,每次的得分,总得分,其他变量等,循环判定输入猜测的值,根据是否相等做出相应的反应,且每次处理后猜测次数+1,在一次猜测完成以后进行总词数相加以及分数相加,在进行是否继续进行程序。
2.万年历
思路:根据之前写的c语句改成java用的语句,把c语言的函数写成方法,然后再调用方法。还要判断用户输入的年份是否是闰年,计算出距1990年有多少年判断每年的天数并通过用户输入的月份,把天数累加计算出距1990年1月1日有多少天,之后计算月初对应的星期,最后按格式输出。
实验问题分析:
问题:输出的格式不对应
原因:之前c用的空格,在Java里不适用
修改: 改成" "
3.评分系统
思路:利用二位数组存储随机数产生的评委打的分数, 利用循环找到最大值最小值,并把最大最小值变零 ,求出平均值时除以8就好了,把品军分排序 输出。
实验问题分析:
求平均数时sum/8 需要强制类型转换。因为平均数数组为float型
代码托管