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");
            }
        }
    }
}

 

posted on 2016-05-23 17:21  王铭霞  阅读(203)  评论(0编辑  收藏  举报