明解Java 第六章

6-1

public class Main {
public static void main(String[] args){
for(int i=0;i<=1000;i++){
float x=(float)i/1000;
System.out.printf("x=%f\t",x);
System.out.println("x^2="+x*x);
}
}
}

6-2

public class Main {

public static void main(String[] args){

int[] a=new int[5];

for(int i=0;i<a.length;i++){

a[i] =5-i;

System.out.println("a["+i+"]="+a[i]);

}

}

}

6-3

public class Main {

public static void main(String[] args){

double[] a=new double[5];

for(int i=0;i<a.length;i++){

a[i]=(double)(i+1)/10+(i+1);

System.out.println(a[i]);

}

}

}

6-4

方案一:

import java.util.Scanner;
import java.util.Random;
public class Main {
public static void main(String[] args){
Scanner stdIn=new Scanner(System.in);
Random rand=new Random();
System.out.print("元素个数:");
int n=stdIn.nextInt();
stdIn.close();
int [] a=new int[n];
int max=a[0];
for(int i=0;i<n;i++) {
a[i] = 1 + rand.nextInt(10);
}
for(int i=1;i<n;i++){
if(a[i]>=max) max=a[i];
}
for(int j=0;j<max;j++) {
for(int i=0;i<n;i++){
if(a[i]<max-j)
System.out.print(" ");
else
System.out.print("* ");
}
System.out.println();
}
for(int i=0;i<n;i++)
System.out.print("--");
System.out.println();
for(int i=0;i<n;i++)
System.out.print(i%10+" ");
}
}

方案二:

import java.util.Scanner;

import java.util.Random;

public class Test {

public static void main(String[] args){

Scanner stdIn = new Scanner(System.in);

Random rand = new Random();

System.out.print("元素个数:");

int n = stdIn.nextInt();

int[] a = new int[n];

for (int i = 0; i < n; i++) {

a[i] = rand.nextInt(10) + 1;

}

// 寻找最大高度

int maxHeight = 0;

for (int i = 0; i < n; i++) {

if (a[i] > maxHeight) {

maxHeight = a[i];

}

}

// 逐行打印柱形图

for (int row = maxHeight; row > 0; row--) {

for (int i = 0; i < n; i++) {

if (a[i] >= row) {

System.out.print("* ");

} else {

System.out.print(" ");

}

}

System.out.println();

}

// 打印分隔线

for (int i = 0; i < n; i++) {

System.out.print("--");

}

System.out.println();

// 打印下标

for (int i = 0; i < n; i++) {

System.out.print(i % 10 + " ");

}

}

}

6-5

import java.util.Scanner;

public class Main {

public static void main(String[] args){

Scanner stdIn=new Scanner(System.in);

System.out.print("元素个数:");

int n=stdIn.nextInt();

int [] a=new int[n];

int i;

for(i=0;i<a.length;i++){

System.out.print("a["+i+"]=");

a[i]=stdIn.nextInt();

}

System.out.print("a={");

for(i=0;i<n;i++) {

if(i==n-1)

System.out.print(a[i]);

else

System.out.print(a[i] + ",");

 

}

System.out.println("}");

}

}

6-6

import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner stdIn=new Scanner(System.in);
System.out.print("人数:");
int n=stdIn.nextInt();
double[] t=new double[n];
double sum=0;
System.out.println("请输入"+n+"名学生的分数");
for(int i=0;i<n;i++){
System.out.print((i+1)+"号的分数:");
t[i]=stdIn.nextDouble();
sum+=t[i];
}
double max=t[0];
for(int i=1;i<t.length;i++){
if(t[i]>max) max=t[i];
}
double min=t[0];
for(int i=1;i<t.length;i++){
if(t[i]<min) min=t[i];
}
System.out.println("总分"+sum);
System.out.println("平均分"+sum/n);
System.out.println("最高分"+max);
System.out.println("最低分"+min);
}
}

6-7

import java.util.Scanner;

import java.util.Random;

public class Main {

public static void main(String[] args){

Scanner stdIn=new Scanner(System.in);

Random rand=new Random();

final int n=12;

int [] a=new int[n];

for(int j=0;j<n;j++) {

a[j] = rand.nextInt(10);

}

System.out.print("数组a中全部元素的值\n{ ");

for(int j=0;j<n;j++){

System.out.print(a[j]+" ");

}

System.out.println("}");

System.out.print("要查找的数值:");

int key=stdIn.nextInt();

int i;

for(i=0;i<n;i++)

if(a[n-1-i]==key) break;

if(i<n)

System.out.println("该元素是a["+(n-1-i)+"]。");

else

System.out.println("该元素不存在。");

}

}

6-8

import java.util.Scanner;

import java.util.Random;

public class Main {

public static void main(String[] args){

Scanner stdIn=new Scanner(System.in);

Random rand=new Random();

System.out.print("元素个数:");

int n =stdIn.nextInt();

double [] a=new double[n];

double sum=0;

for(int j=0;j<n;j++) {

a[j] = rand.nextInt(10);

sum+=a[j];

}

System.out.print("数组a中全部元素的值\n{ ");

for(int j=0;j<n;j++){

System.out.print(a[j]+" ");

}

System.out.println("}");

System.out.println("合计值是"+sum);

System.out.println("平均值是"+sum/n);

}

}

6-9

import java.util.Scanner;

import java.util.Random;

public class Main {

public static void main(String[] args){

Scanner stdIn=new Scanner(System.in);

Random rand=new Random();

System.out.print("元素个数:");

int n =stdIn.nextInt();

int [] a=new int[n];

double sum=0;

for(int j=0;j<n;j++) {

a[j] = rand.nextInt(10)+1;

}

System.out.print("数组a中全部元素的值\n{ ");

for(int j=0;j<n;j++){

System.out.print(a[j]+" ");

}

System.out.println("}");

}

}

6-10

方案一:

import java.util.Scanner;

import java.util.Random;

public class Main {

public static void main(String[] args){

Scanner stdIn=new Scanner(System.in);

Random rand=new Random();

System.out.print("元素个数:");

int n =stdIn.nextInt();

int [] a=new int[n];

double sum=0;

int b=-1;

for(int j=0;j<n;j++) {

int num;

do {

num = rand.nextInt(10) + 1;

}while(num==b);

a[j]=num;

b=num;

}

System.out.print("数组a中全部元素的值\n{ ");

for(int j=0;j<n;j++) {

System.out.print(a[j] + " ");

}

System.out.println("}");

}

}

方案二:

5921dde3c9e84775933123891e7d1cd2.png

 

6-11

方案一:

import java.util.Scanner;

import java.util.Random;

public class Main {

public static void main(String[] args) {

Scanner stdIn = new Scanner(System.in);

Random rand = new Random();

System.out.print("元素个数:");

int n = stdIn.nextInt();

int[] a = new int[n];

boolean[] used = new boolean[10]; 

System.out.print("数组a中全部元素的值\n{ ");

for (int j = 0; j < n; j++) {

int num;

do {

num = rand.nextInt(10) + 1;

} while (used[num]); 

a[j] = num;

used[num] = true; 

System.out.print(a[j] + " ");

}

System.out.println("}");

}

}

方案二:

import java.util.Scanner;

import java.util.Random;

public class Test {

public static void main(String[] args){

Scanner stdIn = new Scanner(System.in);

Random rand = new Random();

System.out.print("元素个数:");

int n = stdIn.nextInt();

int[] a = new int[n];

for(int i = 0; i < n; i++){

int newValue = rand.nextInt(10) + 1;

// 检查新生成的元素是否已存在于数组中

boolean exists = false;

for(int j = 0; j < i; j++) {

if(a[j] == newValue) {

exists = true;

break;

}

}

if(exists) {

i--; // 如果存在重复元素,则回退一个索引重新生成当前元素

}

else {

a[i] = newValue;

if(i<n-1&&i>0) {

System.out.print(a[i] + ",");

}

else if(i==0){

System.out.print("{"+a[i]+",");

}

else{

System.out.println(a[i] + "}");

}

}

}

System.out.print("关键值:");

int key = stdIn.nextInt();

int foundIndex = -1;

for(int j = 0; j < n; j++){

if(a[j] == key) {

foundIndex = j;

break;

}

}

if(foundIndex != -1) {

System.out.println("该元素a[" + foundIndex + "]。");

}

else {

System.out.println("该元素不存在。");

}

}

}

6-12

import java.util.Arrays;

import java.util.Random;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner stdIn=new Scanner(System.in);

System.out.print("元素个数:");

int n = stdIn.nextInt();

int[] array = generateRandomArray(n);

shuffleArray(array); 

System.out.println(Arrays.toString(array)); 

}

public static int[] generateRandomArray(int n) {

int[] array = new int[n];

Random rnd = new Random();

for (int i = 0; i < n; i++) {

array[i] = rnd.nextInt(100); 

}

return array;

}

public static void shuffleArray(int[] array) {

Random rnd = new Random();

for (int i = array.length - 1; i > 0; i--) {

int index = rnd.nextInt(i + 1);

int temp = array[i];

array[i] = array[index];

array[index] = temp;

}

}

}

6-13

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("元素个数:");
int n = stdIn.nextInt();
int[] a = new int[n];
int[] b = new int[n];
for (int i = 0; i < n; i++) {
System.out.print("a["+i+"]= ");
a[i]=stdIn.nextInt();
}
for(int i=0;i<n;i++) {
b[i] = a[n - i - 1];
}
System.out.println("已经将a的全部元素倒序复制到数组b中。");
for(int i=0;i<n;i++){
System.out.println("b["+i+"]="+b[i]);
}
}
}

6-14

import java.util.Scanner;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Scanner stdIn=new Scanner(System.in);
Random rand=new Random();
String[] monthString={"January","February","March","April","May","June","July",
"August","September","October","November","December"};
System.out.println("请输入月份的英语表达。");
System.out.println("另外,首字母大写,之后的字母都小写");
int retry;
Outer:
do{
int month = rand.nextInt(12) + 1;
String s2=monthString[month-1];
System.out.print(month +"月:");
String s1=stdIn.next();
if(s1.equals(s2)) {
System.out.print(s2);
System.out.println("回答正确。再来一次?1...Yes/0...No");
}
else {
break Outer;
}
retry = stdIn.nextInt();
}while(retry==1);
System.out.print("回答错误。");
}
}

6-15

import java.util.Scanner;

import java.util.Random;

public class Main {

public static void main(String[] args) {

Scanner stdIn=new Scanner(System.in);

Random rand=new Random();

String[] dayString={"monday","tuesday","wednesday","thursday","friday","saturday","sunday"};

String[] day={"一","二","三","四","五","六","七"};

System.out.println("请用小写输入英文的星期名。");

int retry;

Outer:

do{

int a = rand.nextInt(7) + 1;

String s2=dayString[a-1];

System.out.print("星期"+day[a-1]+":");

String s1=stdIn.next();

if(s1.equals(s2)) {

System.out.print(s2);

System.out.println("回答正确。再来一次?1...Yes/0...No");

}

else {

break Outer;

}

retry = stdIn.nextInt();

}while(retry==1);

System.out.print("回答错误。");

}

}

6-16

import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner stdIn = new Scanner(System.in);
System.out.print("行数:");
int a = stdIn.nextInt();
System.out.print("列数:");
int b = stdIn.nextInt();
int c=1;
int[][] x=new int[a][b];
for(int i=0;i<a;i++){
for(int j=0;j<b;j++) {
x[i][j] = stdIn.nextInt();
c*=x[i][j];
}
}
for(int i=0;i<a;i++){
for(int j=0;j<b;j++) {
System.out.print(x[i][j]+"\t");
}
System.out.println();
}
System.out.print(c);
}
}

6-17

import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner stdIn = new Scanner(System.in);
double c=0;
double d=0;
double y=0;
double[][] x=new double[6][2];
for(int i=0;i<6;i++){
for(int j=0;j<2;j++) {
x[i][j] = stdIn.nextDouble();
}
}
System.out.println("--------数学----语文--------");
for(int i=0;i<6;i++){
System.out.print("第"+(i+1)+"名学生:");
for(int j=0;j<2;j++) {
System.out.print(x[i][j]+"\t");
}
c+=x[i][0];
d+=x[i][1];
System.out.println();
}
System.out.println("语文平均分:"+c/6);
System.out.println("数学平均分: "+d/6);
for(int i=0;i<6;i++){
y=x[i][0]+x[i][1];
System.out.println("第"+(i+1)+"名学生的平均分是"+y/2);
}
}
}

6-18

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.print("请输入行数:");

int rows = scanner.nextInt();

int[][] c = new int[rows][];

for (int i = 0; i < rows; i++) {

System.out.print("请输入第 " + (i+1) + " 行的列数:");

int cols = scanner.nextInt();

c[i] = new int[cols];

for (int j = 0; j < cols; j++) {

System.out.print("请输入第 " + (i+1) + " 行第 " + (j+1) + " 列的元素值:");

c[i][j] = scanner.nextInt();

}

}

for (int i = 0; i < c.length; i++) {

for (int j = 0; j < c[i].length; j++) {

System.out.printf("%3d", c[i][j]);

}

System.out.println();

}

}

}

6-19

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner stdIn = new Scanner(System.in);

System.out.print("班级数:");

int a = stdIn.nextInt();

double sum1=0,sum2=0;

int b1=0,b2=0;

double ave1=0,ave2=0;

for(int i=0;i<a;i++){

System.out.print((i+1)+"班人数:");

int b = stdIn.nextInt();

for(int j=0;j<b;j++){

double[][]x=new double[a][b];

System.out.print((i+1)+"班"+(j+1)+"号的分数:");

double c=stdIn.nextDouble();

if(i==0) {

sum1+=c;

ave1=sum1/b;

}

else

sum2+=c;

ave2=sum2/b;

}

}

System.out.println("班 总分 平均分");

System.out.println((a-1)+"班 "+sum1+" "+ave1);

System.out.println(a+"班"+" "+sum2+" "+ave2);

System.out.println("合计"+" "+(sum1+sum2)+" "+(ave1+ave2)/a);

}

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值