这是我在网上找的一些习题,自己写的代码,代码中有些不是很好
总目录
习题一
- 定义一个方法,该方法能够找出两个小数中的较小值并返回。在主方法中调用方法进行测试。
代码如下:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double mina = sc.nextDouble();
double minb = sc.nextDouble();
double min = getMin(mina,minb);
System.out.println("a = "+mina+" b = " +minb+", 最小的小数为 "+min);
}
public static double getMin(double mina,double minb){
return mina>minb?minb:mina;
}
习题二
- 定义一个方法,该方法能够找出三个整数中的最大值并返回。在主方法中调用方法测试执行。
代码如下:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int max = getMaxInThree(a,b,c);
System.out.println("a = "+a+" b = "+b+" c "+c+" 最大的数为 "+max);
}
public static int getMaxInThree(int a,int b,int c){
int scendmax = a>b?a:b;
return scendmax > c ? scendmax:c;
}
习题三
- 通过键盘录入两个整数n和m。n代表行数,m代表列数。定义一个方法,方法的功能是打印n行m列的@符号。执行效果如下:
请输入行数:
4
请输入列数:
5
@@@@@
@@@@@
@@@@@
@@@@@
代码如下:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int r = sc.nextInt();
int c = sc.nextInt();
print_r_c(r,c);
}
public static void print_r_c(int r,int c){
for(int i = 0;i<r;i++){
for(int j =0 ; j < c;j++){
System.out.print("@");
}
System.out.println("");
}
}
习题四
- 我们知道数学中有九九乘法表。请定义一个方法,方法的功能是打印nn乘法表。在主方法中键盘录入取值范围为[1-9]的变量n,测试方法。执行效果如下:
请输入一个1-9之间的整数:
4
乘法表:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
代码如下:
public static void main(String[] args) {
System.out.println("请输入一个1-9之间的整数:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
print_n_n(n);
}
public static void print_n_n(int n){
for(int i =1;i<=n;i++){
for(int j = 1;j<=i;j++){
System.out.print(j+"x"+i+"="+(i*j)+"\t");
}
System.out.println("");
}
}
习题五
- 在主方法中通过键盘录入三个整数。定义一个方法,方法接收三个整数变量,在方法中从大到小依次打印三个变量。执行效果如下:
请输入第一个整数:10
请输入第二个整数:30
请输入第三个整数:20
从大到小的顺序是: 30 20 10
代码如下:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入第一个整数:");
int a = sc.nextInt();
System.out.print("请输入第二个整数:");
int b =sc.nextInt();
System.out.print("请输入第三个整数:");
int c = sc.nextInt();
show_From_Max_To_Min(a,b,c);
}
public static void show_From_Max_To_Min(int a,int b,int c){
int a1 = 0;
int b1 = 0;
int c1 = 0;
int t =0;
//先确定a和b大小
if( a > b) {
a1 = 1;
t = a;
}else{
b1 = 1;
t = b;
}
// 在a最大的情况下比较b和c
if(a1 == 1){
if(c > b){
System.out.println("从大到小的顺序是:"+a+" "+b+" "+c);
}else {
System.out.println("从大到小的顺序是:"+a+" "+c+" "+b);
}
}else{ // 在b最大的情况下比较a和c
if(c > a){
System.out.println("从大到小的顺序是:"+b+" "+c+" "+a);
}else {
System.out.println("从大到小的顺序是:"+b+" "+a+" "+c);
}
}
}
习题六
- 数字是有绝对值的,负数的绝对值是它本身取反,非负数的绝对值是它本身。请定义一个方法,方法能够得到小数类型数字的绝对值并返回。请定义方法并测试。
代码如下:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double a = scanner.nextDouble();
double a_absolu = getAbsolu(a);
System.out.println(a+"的绝对值为 "+a_absolu);
}
public static double getAbsolu(double a){
if(a>=0){
return a;
}else {
return 0 - a;
}
}
习题七
- 请定义一个方法,对正数的小数进行四舍五入的操作(不考虑负数情况)。四舍五入之后的结果是一个int整数类型并返回。最后对方法进行测试。
代码如下:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double a = scanner.nextDouble();
int a_ = getInt(a);
System.out.println("对"+a+"进行四舍五入为 "+a_);
}
public static int getInt(double a){
int ax = (int)a;
double axx =(double)ax;
if(a < axx + 0.5){
return ax;
}else {
return ax + 1;
}
}
习题八
- 一个大V直播抽奖,奖品是现金红包,分别有{2,588,888,1000,10000}五个奖金。请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。打印效果如下:(随机顺序,不一定是下面的顺序)
888元的奖金被抽出
588元的奖金被抽出
10000元的奖金被抽出
1000元的奖金被抽出
2元的奖金被抽出
public static void main(String[] args) {
int[] arr = new int[]{2,588,888,1000,10000};
int[] newarr = new int[arr.length];
Random random = new Random();
int index =0;
while(index < arr.length){
int i = random.nextInt(arr.length);
if(!exit(newarr,arr[i])){
System.out.println(arr[i]+"元的奖金被抽出");
newarr[index] = arr[i];
index++;
}
}
}
public static boolean exit(int[] newarr,int data){
for(int i = 0;i < newarr.length;i++){
if( data == newarr[i]){
return true;
}
}
return false;
}