心血来潮补一下之前没做完的课后题,争取全部做完,欢迎大家评论指正。
目录
-
- 7-1 指定等级
- 7-2 倒置输入的数
- 7-3 计算数字的出现次数
- 7-4 分析成绩
- 7-5 打印不同的数
- 7-6 修改程序清单5-15
- 7-7 统计一位数的个数
- 7-8 求数组的平均值
- 7-9 找出最小元素
- 7-10 找出最小元素的下标
- 7-11 统计学方面:计算标准差
- 7-12 倒置数组
- 7-13 随机数选择器
- 7-14 计算gcd
- 7-15 消除重复
- 7-16 执行时间
- 7-17 对学生排序
- 7-18 冒泡排序
- 7-19 是否排好序了?
- 7-20 修改选择排序法
- 7-21 游戏:豆机
- 7-22 游戏:八皇后
- 7-23 游戏:储物柜难题
- 7-24 仿真:优惠券收集人问题
- 7-25 代数问题:解二次方程式
- 7-26 完全相同的数组
- 7-27 相同的数组
- 7-28 数学方面:组合
- 7-29 游戏:选出四张牌
- 7-30 模式识别方面:四个连续相等的数
- 7-31 合并两个有序列表
- 7-32 划分列表
- 7-33 文化:中国生肖
- 7-34 对字符串中的字符排序
- 7-35 游戏:猜字游戏
需要书籍或者相关资料可以私聊!!!
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