java语言程序设计基础篇第八版第四章答案_Java语言程序设计基础篇第八版 第四章 编程练习题答案(部分答案)...

4.1

package test1;

import java.util.Scanner;

// 第八版  第四章 课后编程题的答案 4.1

public class Test1 {

public static void main(String[] args) {

Scanner input=new Scanner(System.in);

System.out.println("Enter an int value , the program exits if the input is 0:" );

int zcount=0;

int fcount=0;

double sum=0 ;

double average=0;

int number=1;

while(number!=0){

number=input.nextInt();

if(number>0) {

zcount++;

}

else if(number<0) {

fcount++;

}

sum=sum+number;

}

average=sum/(zcount+fcount);

System.out.println("The number of positives is "+zcount);

System.out.println("The number of negatives is "+fcount);

System.out.println("The total is "+sum);

System.out.println("The average is "+average);

}

}

4.2

package test1;

import java.util.Scanner;

public class Test2 {

//4.2(重复加法)

public static void main(String[] args) {

long startTime=System.currentTimeMillis();

int zcount=0;

int count=0;

Scanner input=new Scanner(System.in);

while(count<10) {

int number1=(int)(Math.random()*14+1);

int number2=(int)(Math.random()*14+1);

System.out.println("请问: "+number1+" + "+number2+" = ?");

int answer=input.nextInt();

if(number1+number2==answer) {

zcount++;

System.out.println("你是正确的!");

}else {

System.out.println("你是错误的!");

}

count++;

}

long endTime=System.currentTimeMillis();

long testTime=endTime-startTime;

System.out.println("正确的答案的个数为: "+zcount);

System.out.println("当前的时间为: "+testTime);

}

}

4.3

package test1;

public class Test3 {

//4.3

public static void main(String[] args) {

System.out.println("千克"+"                    "+"磅");

for(int i=1;i<=199;i=i+2) {

double pound=i*2.2;

//System.out.println(i);

System.out.printf("%-4d%9s%4.1f\n",i,"         ",pound);

}

}

}

4.4

package test1;

public class Test4 {

//4.4

public static void main(String[] args) {

System.out.println("英里"+"                         "+"千米");

for(int i=1;i<=10;i++) {

double km=i*1.609;

System.out.printf("%-2d%16s%-6.3f\n", i,"                ",km);

}

}

}

4.5

package test1;

public class Test5 {

//4.5                      "\t"是制表符

public static void main(String[] args){

double b1,kg2;

int b2=20;

System.out.println("千克\t\t磅\t\t千克\t\t磅");

for(int i=1;i<=199;i=i+2) {

b1=i*2.2;

kg2=b2/2.2;

System.out.printf("%d\t\t%.1f\t\t%d\t\t%.2f\n", i,b1,b2,kg2);

b2+=5;

}

}

}

4.6

package test1;

public class Test6 {

//4.6

public static void main(String[] args) {

double km1,yl2;

int km2=20;

System.out.println("英里\t\t千米\t\t千米\t\t英里");

for(int i=1;i<=10;i++) {

km1=i*1.609;

yl2=km2/1.609;

System.out.printf("%d\t\t%.3f\t\t%d\t\t%.3f\n",i,km1,km2,yl2);

km2=km2+5;

}

}

}

4.7

package test1;

public class Test7 {

//4.7

public static void main(String[] args) {

int year;

double xf=10000;

double sum=0;

for(year=1;year<=10;year++) {

xf=xf*1.05;

if(year<=4)

sum=sum+xf;

}

System.out.println("十年后的学费为: "+xf);

System.out.println("从十年后算起,4年内的学费为: "+sum);

}

}

4.8和4.9暂时不会!!!

4.10

public class Test10 {

//4.10

public static void main(String[] args) {

int count=0;

for(int i=100;i<=1000;i++) {

if(i%5==0 && i%6==0) {

count++;

if(count%10==0) //每行显示10个

System.out.print(i+"\n");

else

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

}

}

}

}

4.11

public class Test11 {

//4.11

public static void main(String[] args) {

int count=0;

for(int i=100;i<=200;i++) {

if(i%5==0 ^ i%6==0) {

count++;

if(count%10==0)

System.out.print(i+"\n");

else

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

}

}

}

}

4.12

public class Test12 {

//4.12

public static void main(String[] args) {

int n = 0;

int count=0;

while(n<12000) {

if(n*n>12000) {

count++;

if(count==1)

System.out.print(n);

}

n++;

}

}

}

4.13

public class Test13 {

//4.13

public static void main(String[] args) {

int n=0;

while(n<12000) {

if(n*n*n<12000) {

n++;

}else {

n--;

System.out.println(n);

break;

}

}

}

}

4.14

public class Test14 {

//4.14

public static void main(String[] args) {

char i;

int count=0;

for(i=33;i<=126;i++) {

count++;

if( count % 10 == 0)

System.out.print(i+"\n");

else

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

}

}

}

4.15

package test1;

import java.util.Scanner;

public class Test15 {

//4.15

public static void main(String[] args) {

Scanner input=new Scanner(System.in);

System.out.println("请输入两个正整数: ");

int n1=input.nextInt();

int n2=input.nextInt();

int d = 0;

if(n1

d=n1;

else if(n2

d=n2;

while(d>=1) {

if(n1%d==0 && n2%d==0) {

System.out.println(n1+" 和 "+n2+" 的最大公约数是:"+d);

break;

}

d--;

}

}

}

4.16

package test1;

import java.util.Scanner;

public class Test16 {

//4.16

public static void main(String[] args) {

Scanner input=new Scanner(System.in);

System.out.println("请输入一个整数: ");

int n=input.nextInt();

int i;

int k=2;

for(i=1;i<10000;i++) {  //要注意循环可执行的次数,一定要大于n

if(n%k==0) {

System.out.print(" "+k);

n=n/k;

k=2;

}else {

k++;

}

}

}

}

4.17

package test1;

import java.util.Scanner;

public class Test17 {

//4.17   金字塔系列(这是我复制别人的源码,本人不会写系列)

public static void main(String[] args) {

//画各种金字塔的程序

Scanner input = new Scanner(System.in);

System.out.print("Enter an integer between 1 and 15 :");

int n = input.nextInt();

//左金字塔

/*        int count = 1;

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

for(int j = n;j>=1;j--){

if(count <= n-i){

System.out.print("   ");

count++;

}

else{

System.out.printf("%2d",j);

System.out.print(" ");

}

}

count = 1;

System.out.println();

}

//右金字塔

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

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

System.out.printf("%2d",j);

System.out.print(" ");

}

System.out.println();

}*/

//整个金字塔

int countFront = 1;

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

int out = i;

for(int j = 1;j <= 2*n-1;j++){

if(countFront <= n-i || countFront >=n+i ){

System.out.print("   ");

}

else{

if(j <=n){

System.out.printf("%2d",out);

System.out.print(" ");

out--;

}

if(j > n){

System.out.printf("%2d",out+2);

System.out.print(" ");

out++;

}

}

countFront++;

}

countFront = 1;

System.out.println();

}

//右金字塔翻版倒影

/*        for(int i = n;i >= 1;i--){

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

System.out.printf("%2d",j);

System.out.print(" ");

}

System.out.println();

}

//斜对角数字一样的左金字塔

for(int i = n;i >= 1;i--){

int cnt = 1;

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

if(cnt <= n-i){

System.out.print("   ");

cnt++;

}

else{

System.out.printf("%2d",j-n+i);

System.out.print(" ");

}

}

System.out.println();

}*/

}

}

/*

* 这里用到了数组!!!

*     System.out.println("请输入一个1~15之间的整数:");

Scanner scanner = new Scanner(System.in);

int n = scanner.nextInt();

int[][] array = new int[n][2*n+1];

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

for (int j = n-i; j <= n + i; j++){

array[i][j]=Math.abs(n-j)+1;

}

}

for(int i=0;i

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

System.out.print(array[i][j]==0?"  ":array[i][j]+" ");

}

System.out.println();

} */

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值