一、实验目的:
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);
}
}
- 定义一个二维整形数组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("没有这样的元素");
}
}
- 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;
}
}
}
- 超级递增序列指的是一个整数序列,这个序列中的每一个整数都要比它前面所有整数的和大。编写一个程序,读入一组整数,然后判断这组整数是否为超级递增序列。
输入格式为:数组长度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)+"不是超级递增序列");
}
}
}
- (选做)编写一个程序,从键盘读入一个句子(句子中可能包含空格、大小写字母、数字、标点符号等),试统计该句子中字符(不区分大小写)、数字、空格及其它字符的个数。
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);
}
}