JAVA基础第六组(5道题)

26.【程序26】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
       
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。

package com.niit.homework1;

import java.util.Scanner;

/**
* @author: Annie
* @date:2016年5月21日
* @description:【程序26】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。 */
public class JudgeWeek { static Scanner reader = new Scanner(System.in);
public static void main(String[] args) {
String n;
do{
System.out.println("请输入第一个");
String num = reader.next();
num =smallChangBig(num);
printJudge(num);
System.out.println("是否继续(y/n)");
n = reader.next();
n=bigChangeToSmall(n);
}while("y".equals(n));
} private static void printJudge(String num) { switch (num) {
case "M":
System.out.println("今天是星期一");
break;
case "T":
if("T".equals(num)){
System.out.println("请继续输入第二个字母");
String n = reader.next();
n=bigChangeToSmall(n);
if("u".equals(n)){
System.out.println("今天是星期二");
}else if("h".equals(n)){
System.out.println("今天是星期四");
}
}
break;
case "W":
System.out.println("今天是星期三");
break; case "F":
System.out.println("今天是星期五");
break;
case "S":
if("S".equals(num)){
System.out.println("请继续输入第二个字母");
String n = reader.next();
n=bigChangeToSmall(n);
if("a".equals(n)){
System.out.println("今天是星期六");
}else if("u".equals(n)){
System.out.println("今天是星期天");
}
}
break;
default:
System.out.println("输入错误,请重新输入:");
break;
} }
/*将大写字母变成小写字母的方法*/
public static String bigChangeToSmall(String num){
String n= num.toLowerCase();
return n; } /*将小写字母变成大写字母的方法*/
public static String smallChangBig(String num){
String n =num.toUpperCase();
return n; } }

27.【程序27】
题目:求100之内的素数

package com.niit.homework1;

/**
* @author: Annie
* @date:2016年5月21日
* @description:【程序27】 题目:求100之内的素数 (只能被一和本身整除的数) */
public class PrintPrime { public static void main(String[] args) {
PrintPrime p = new PrintPrime();
System.out.print("100以内的素数有:");
for (int i = 0; i <100; i++) {
if(p.prime(i)){
System.out.print(i+" ");
}
}
}
/*判断此数是不是素数*/
public boolean prime(int num){
if(num<2){
return false;
}
for (int j = 2; j <=Math.sqrt(num); j++) {
if(num%j == 0){
return false;
}
}return true; } }

28.

29.【程序29】
题目:求一个3*3矩阵对角线元素之和
       
1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

/**
*
*/
package com.niit.homework1; import java.util.Scanner; /**
* @author: Annie
* @date:2016年5月22日
* @description:【程序29】 题目:求一个3*3矩阵对角线元素之和 */
public class MatrixSum {
static Scanner in = new Scanner (System.in);
public static void main(String[] args) {
System.out.println("请输入你要求和的矩阵的行数n");
int n = in.nextInt();
int [][] arr = new int[n][n];
MatrixSum ms = new MatrixSum();
arr = ms.input(arr);
System.out.println("对角线之和是:"+ms.diagonalSum(arr,n));
}
/**
* @param arr
* 用于计算主对角线和次对角线之和的方法
*/
private int diagonalSum(int[][] arr,int n) {
int sum = 0 ;
if(n%2==0){//如果行数是偶数,这对角线中间不会重复相加
sum = sumD(arr);
}else{//如果是奇数行
int i=n/2;
sum = sumD(arr)-arr[i][i];
}
return sum;
}
/**
* 输入数据,并将数据存在数组中的方法
*/
private int[][] input(int [][] arr) {
for (int i = 0; i <arr.length; i++) {
for (int j = 0; j <arr[i].length; j++) {
System.out.println("请输入第 "+(i+1)+"行第"+(j+1)+"个数");
arr[i][j]=in.nextInt();
}
}System.out.println("原始数据是:");
print(arr);
return arr; } /**
* @param arr
* 打印二维数组的方法:
*/
private void print(int[][] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+"\t");
}
System.out.println();
} }
/**
* @param arr
* 用于计算行数是偶数的矩阵的对角线之和
*/
private int sumD(int [][] arr){
int sum=0;
for (int i = 0; i<arr.length; i++) {
sum = sum+arr[i][i];//累加主对角线
}
for (int i = 0; i < arr.length; i++) {
sum = sum+arr[i][arr.length-1-i];//累加次对角线之和
}
return sum;//偶数行对角线求和
}
}

30.【程序30】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
       1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,
      
依次后移一个位置。

package com.niit.homework1;

import java.util.Scanner;

/**
* @author: Annie
* @date:2016年5月18日
* @description:【程序30】 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 */
public class InsertNum {
public static void main(String[] args) {
int arr[]={1,4,6,9,13,16,19,28,40,100};
int copy[]= new int [11];
Scanner in =new Scanner(System.in);
System.out.println("请输入要插入的数字:");
int number = in.nextInt() ;
System.out.println("原始数据是:");
for (int i = 0; i < copy.length-1; i++) {
copy[i] = arr[i];
System.out.print(copy[i]+"\t");
} System.out.println();
System.out.println("插入数据是:");
printInsert(copy,number);
}
/**
* 用于插入数据的方法:
* */
private static void printInsert(int [] copy,int number){
int end =copy[9];
int temp1;
int temp2;
if(number>=copy[9]){
copy[10]=number;
}else{
for (int i = 0; i <copy.length; i++) {
if(copy[i]>number){
temp1= copy[i];
copy[i]=number;
for(int j=i+1;j<11;j++)
{
temp2=copy[j];
copy[j]=temp1;
temp1=temp2;
}
break;
}
}
for (int j2 = 0; j2 < copy.length; j2++) {
System.out.print(copy[j2]+"\t");
}
}
}
}
上一篇:java 基础知识八 正则表达式


下一篇:JAVA基础第十组(5道题)