Java语言程序设计(基础篇)(原书第10版) 第七章编程练习题

心血来潮补一下之前没做完的课后题,争取全部做完,欢迎大家评论指正。

在这里插入图片描述

需要书籍或者相关资料可以私聊!!!

7-1 指定等级

import java.util.Scanner;

public class Program7_1 {
   

    public static void main(String[] args) {
   
        Scanner input = new Scanner(System.in);

        System.out.print("Enter the number of students: ");
        int num = input.nextInt();

        int[] stu = new int[num];
        int best = 0;
        System.out.printf("Enter %d scores: ", num);
        for (int i = 0; i < num; i++) {
   
            stu[i] = input.nextInt();
            best = Math.max(best, stu[i]);
        }

        for (int i = 0; i < num; i++) {
   
            System.out.printf("Student %d score is %d and grade is ", i, stu[i]);
            if(stu[i] >= best - 10)
                System.out.println('A');
            else if(stu[i] >= best - 20)
                System.out.println('B');
            else if(stu[i] >= best - 30)
                System.out.println('C');
            else if(stu[i] >= best - 40)
                System.out.println('D');
            else
                System.out.println('F');
        }

        input.close();
    }

}

7-2 倒置输入的数

import java.util.Scanner;

public class Program7_2 {
   

   public static void main(String[] args) {
   
       System.out.print("Enter 10 integers: ");
       Scanner input = new Scanner(System.in);

       int[] num = new int[10];

       for (int i = 0; i < 10; i++)
           num[i] = input.nextInt();

       for (int i = 9; i >= 0; i--)
           System.out.print(num[i] + " ");
       System.out.println();
       input.close();
   }

}

7-3 计算数字的出现次数

import java.util.Scanner;

public class Program7_3 {
   

	public static void main(String[] args) {
   
		Scanner input = new Scanner(System.in);
		
		int[] num = new int[101];
		int n;
		System.out.print("Enter the integers between 1 and 100: ");
		while(true) {
   
			n = input.nextInt();
			if(n == 0) break;
			num[n]++;
		}
		for(int i = 1; i < 101; i++) {
   
			if (num[i] != 0) {
   
				System.out.print(i + " occurs " + num[i] + " time");
				System.out.println(((num[i] > 1) ? 's' : ""));
			}
		}

		input.close();
	}

}

7-4 分析成绩

import java.util.Scanner;

public class Program7_4 {
   

    public static void main(String[] args) {
   
        Scanner input = new Scanner(System.in);

        double[] score = new double[101];

        System.out.println("Enter several scores, ending with a negative number: ");
        int cnt = 0;
        int sum = 0;
        int num = input.nextInt();
        while(num >= 0){
   
            score[num]++;
            sum += num;
            cnt++;
            num = input.nextInt();
        }
        double average = 1.0 * sum / cnt;
        int count1 = 0, count2 = 0;
        for (int i = 0; i <= 100; i++) {
   
            if(i >= average && score[i] != 0)
                count1 += score[i];
            else if(i < average && score[i] != 0)
                count2 += score[i];
        }
        System.out.printf("The average is %.2f\n", average);
        System.out.printf("%d score%s exceed the average score\n", count1, (count1 > 1) ? "s" : "");
        System.out.printf("%d score%s below the average score\n", count2, (count2 > 1) ? "s" : "");

        input.close();
    }

}

7-5 打印不同的数

import java.util.Scanner;

public class Program7_5 {
   

	public static void main(String[] args) {
   
		Scanner input = new Scanner(System.in);
		
		int[] num = new int[10];
		int count = 0, m, flag;
		System.out.print("Enter ten number: ");
		for(int i = 0; i < 10; i++) {
   
			flag = 0;
			m = input.nextInt();
			for(int j = 0; j < i; j++)
				if(m == num[j]){
   
					flag = 1;
					break;
				}
			if(flag == 0) num[count++] = m;
		}	
		
		System.out.println("The number of distinct number is " + count);
		System.out.print("The distinct numbers are ");
		for(int i = 0; i < count; i++) {
   
			System.out.print(num[i]);
			if(i < count-1) System.out.print(" ");
		}
		System.out.println();

		input.close();
	}

}

7-6 修改程序清单5-15

public class Program7_6 {
   

    public static void main(String[] args) {
   
        final int NUMBER_OF_PRIMES = 50; // Number of primes to display
        final int NUMBER_OF_PRIMES_PER_LINE = 10; // Display 10 per line
        int count = 0; // Count the number of prime numbers
        int number = 2; // A number to be tested for primeness

        System.out.println("The first 50 prime numbers are \n");

        int[] prime = new int[50];

        // Repeatedly find prime numbers
        while (count < NUMBER_OF_PRIMES) {
   
            // Assume the number is prime
            boolean isPrime = true; // Is the current number prime?

            // Test if number is prime
            for (int i = 0; prime[i] <= Math.sqrt(number) && i < count; i++) {
   
                if(number % prime[i] == 0){
   
                    isPrime = false; // Set isPrime to false
                    break; // Exit the for loop
                }
            }

            // Print the prime number and increase the count
            if (isPrime) {
   
                prime[count] = number;
                count++;
            }

            // Check if the next number is prime
            number++;
        }

        for (int i = 0; i < count; i++) {
   
            System.out.print(prime[i] + " ");
            if((i+1) % NUMBER_OF_PRIMES_PER_LINE == 0)
                System.out.println();
        }
    }

}

7-7 统计一位数的个数

public class Program7_7 {
   
	public static void main(String[] args) {
   
		int[] count = new int[10];
		
		for(int i = 1; i <= 100; i++) {
   
			int m = (int)(Math.random() * 10);
			System.out.print(m + " ");
			if(i % 10 == 0) System.out.println();
			count[m]++;
		}
		for(int i = 0; i < 10; i++)
			System.out.println(i + " occurs " + count[i] + " times");
	}
	
}

7-8 求数组的平均值

import java.util.Scanner;

public class Program7_8 {
   

    public static void main(String[] args) {
   
        Scanner input = new Scanner(System.in);

        System.out.print("Enter 10 double numbers: ");

        double[] num = new double[10];
        for (int i = 0; i < 10; i++)
            num[i] = input.nextDouble();

        System.out.printf("The average of the array is: %.2f\n", average(num));

        input.close();
    }

    public static int average(int[] array){
   
        int sum = 0;
        for (int i = 0; i < array.length; i++)
            sum += array[i];

        return sum / array.length;
    }

    public static double average(double[] array){
   
        double sum = 0.0;
        for (int i = 0; i < array.length; i++)
            sum += array[i];

        return 1.0 * sum / array.length;
    }

}

7-9 找出最小元素

import java.util.Scanner;

public class Program7_9 {
   

	public static void main(String[] args) {
   
		Scanner input = new Scanner(System.in);
		double[] num = new double[10];
		
		System.out.print("Enter ten numbers: ");
		for(int i = 0
  • 11
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Java语言程序设计 基础 原书10》是由作者Y. Daniel Liang编写的一本关于Java编程基础的教材。该书内容全面详细,适合初学者学习。以下是本书中的代码内容: 该书的代码部分包含了大量的实例和案例,通过这些代码案例,读者可以学习并理解Java语言基础知识和编程技巧。这些代码包括了基本的语法使用、控制流程、数组、面向对象编程、异常处理、文件操作等各个方面的知识。 例如,一些常见的Java基础知识的代码示例包括: - 变量的声明和初始化 ```java int a = 10; String str = "Hello"; ``` - 控制流程语句 ```java if (a > 10) { System.out.println("a大于10"); } else { System.out.println("a小于等于10"); } ``` - 循环语句 ```java for (int i = 1; i <= 10; i++) { System.out.println(i); } ``` - 数组的声明和使用 ```java int[] arr = new int[5]; arr[0] = 1; arr[1] = 2; ``` - 面向对象编程的类和对象 ```java class Person { String name; int age; void sayHello() { System.out.println("Hello, my name is " + name); } } Person person = new Person(); person.name = "Alice"; person.sayHello(); ``` - 异常处理 ```java try { // 可能会抛出异常的代码 } catch (Exception e) { // 异常处理代码 } ``` - 文件操作 ```java File file = new File("file.txt"); try { Scanner scanner = new Scanner(file); while (scanner.hasNextLine()) { String line = scanner.nextLine(); System.out.println(line); } scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } ``` 以上只是《Java语言程序设计 基础 原书10》中一些代码的简单示例。通过研读该书中的代码,读者可以深入理解Java语言基础知识并掌握相关编程技巧,从而具备编写Java程序的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值