一、实验目的:

1、学会使用一维与二维数组管理简单数据。
2、学会编写简单的菜单驱动(命令行式)的Java程序

二、实验环境:

Eclipse java

三、实验内容:

1.定义一个int型的一维数组,数组的长度由键盘输入,为数组中的元素随机赋值。依次完成如下功能:
(1) 输出数组中的元素。每行输出最多十个数字,数字之间用Tab键分隔;
(2) 计算数组中元素之和,并输出;
(3) 求出数组中元素的最大值及其位置(若有多个相同的最大值,仅输出第一个),并输出。

import java.util.Scanner;

public class First {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int size = in.nextInt();
		int[] a = new int[size];
		int sum = 0;
		for(int i = 0; i < a.length; i++)
		{
			a[i] = in.nextInt();
		}
		//输出数组
		for(int i = 0; i < a.length; i++)
		{
			System.out.print(a[i] + " ");
			if(i%10 == 0 && i != 0)
				System.out.println();
		}
		System.out.println();
		
		//计算数组和
		for(int i = 0; i < a.length; i++)
		{
			sum += a[i];
		}
		System.out.println(sum);
		
		//求最大值及其位置
		int max = a[0];
		int position = 0;
		for(int i = 0; i < a.length; i++)
		{
			if(a[i] > max)
			{
				max = a[i];
				position = i;
			}
		}
		System.out.println(max + " " + position);
	}

	

}
  1. 定义一个二维整形数组data[5][6],数组中的元素在区间[0, 100)上随机赋值。找出数组中所有的具有这类性质的元素及其位置:该元素在所在行是最大的,但在其所在列也是最大的。如果没有这样的元素,则输出“没有这样的元素”。
public class Second {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[][] data = new int[5][6];
		for(int i = 0; i < data.length; i++)
		{
			for(int j = 0; j < data[0].length; j++)
			{
				data[i][j] = (int)(1+Math.random()*(100-1+1));
//				System.out.print(data[i][j] + " ");
			}
//			System.out.println();
		}
		int max = data[0][0];
		int line = 0,row = 0;
		boolean isExist = true;
		boolean result = false;
		for(int i = 0; i < data.length; i++)
		{
			for(int j = 0; j < data[0].length; j++)
			{
				if(max < data[i][j]) {
					max = data[i][j];
					row = i;
					line  = j;
				}
			}
			for(int m = 0; m < data.length; m++)
			{
				if(max < data[m][line])
				{
					isExist = false;
				}
			}
			if(isExist == true)
			{
				result = true;
				System.out.println(data[row][line]);
				System.out.println(row +" " + line);
			}
			max = 0;
			line = row = 0;
		}
		if(result == false)
			System.out.println("没有这样的元素");
			
	}

}
  1. Write a menu-driven program that provides three options (编写一个菜单驱动程序,提供如下三个选项):
    a) the first option allows the user to enter a temperature in Celsius and displays the corresponding Fahrenheit temperature (第一个选项允许用户输入一个摄氏温度,并输出其相应的华氏温度);
    b) the second option allows the user to enter a temperature in Fahrenheit and displays the corresponding Celsius temperature (第二个选项允许用户输入一个华氏温度,并输出其相应的摄氏温度);
    c) the third option allows the user to quit (第三个选项允许用户关闭程序).
    The formulate that you need are as follows, where C represents a Celsius temperature and F a Fahrenheit temperature: (以下是你需要的公式,其中C代表摄氏温度,F代表华氏温度)
    F = 9C/5 + 32
    C = 5(F – 32)/9
import java.util.Scanner;

public class Third {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		System.out.print("请输入您的选项(1,2,3):");
		double F = 0; 
		double C = 0;
		int option = in.nextInt();
		switch (option) {
		case 1:
			C = in.nextDouble();
			F = 9*C/5 + 32;
			System.out.println(F);
			break;
		case 2:
			F = in.nextDouble();
			C = 5*(F-32)/9;
			break;
		case 3:
			System.out.println("关闭程序");
			return;
		default:
			System.out.println("请输入正确的选项!");
			break;
		}
	}

}
  1. 超级递增序列指的是一个整数序列,这个序列中的每一个整数都要比它前面所有整数的和大。编写一个程序,读入一组整数,然后判断这组整数是否为超级递增序列。
    输入格式为:数组长度n 数1 数2 数3 … 数n
    输出格式为:“数1 数2 数3 … 数n”是(或不是)超级递增序列。
    示例:当输入为5 1 2 4 9 20时,输出应为“1 2 4 9 20”是超级递增序列;当输入为6 1 4 9 14 25 65时,输出应为“1 4 9 14 25 65”不是超级递增序列。
import java.util.Arrays;
import java.util.Scanner;

public class Fourth {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		int size = in.nextInt();
		int[] a = new int[size];
		boolean isAdd = true;
		for(int i = 0; i < a.length; i++)
		{
			a[i] = in.nextInt();
		}
		int sum = a[0];
		for(int i = 1; i < a.length; i++)
		{
			if(a[i] < sum)
			{
				isAdd = false;
				break;
			}
			sum += a[i];
		}
		if(isAdd == true)
		{
			System.out.println(Arrays.toString(a)+"是超级递增序列");
		}else
		{
			System.out.println(Arrays.toString(a)+"不是超级递增序列");
		}
	}

}
  1. (选做)编写一个程序,从键盘读入一个句子(句子中可能包含空格、大小写字母、数字、标点符号等),试统计该句子中字符(不区分大小写)、数字、空格及其它字符的个数。
package first;

import java.util.Scanner;

public class Fifth {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		String a = new String();
		a = in.nextLine();
		int space = 0;
		int letter = 0;
		int num = 0;
int other = 0;

char[] ch = a.toCharArray();//先把字符串转化为字符数组
		for(int i = 0; i < ch.length(); i++)
		{
			if(ch[i] == " ")
			{
				space++;
			}else(ch[i] >= ‘0’ && ch[i] <= ‘9’) {
				num++;
			}else (ch[i] >= ‘a’ && ch[i] <= ‘z’ || ch[i] >= ‘A’ && ch[i] <= ‘Z’) {
				letter++;
			}else{
				Other++;
		}
		System.out.print(letter + “ “ + num + “ “ space + “ “ + other);
	}

}