【JAVA程序设计】 实验二:数组与函数

    科技2022-08-08  125

    【JAVA程序设计】 实验二:数组与函数

    一、实验目的:

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

    二、实验环境:

    BlueJ

    三、实验内容:

    1.定义一个int型的一维数组,数组的长度由键盘输入,为数组中的元素随机赋值。依次完成如下功能: (1) 输出数组中的元素。每行输出最多十个数字,数字之间用Tab键分隔; 代码:

    import java.util.Scanner; public class work2 { public static void main(String args[]) { int array[],n; Scanner scanner=new Scanner(System.in); System.out.println("数组长度为:"); n=scanner.nextInt(); array=new int[n]; for(int i=0;i<array.length;i++) { array[i]=(int)(Math.random()*10); } for(int i=0;i<array.length;i++) { System.out.print(array[i]+" "); if((i+1)%10==0) System.out.println(); } } }

    (2) 计算数组中元素之和,并输出; 代码:

    import java.util.Scanner; public class work2 { public static void main(String args[]) { int array[],n; Scanner scanner=new Scanner(System.in); System.out.println("数组长度为:"); n=scanner.nextInt(); array=new int[n]; for(int i=0;i<array.length;i++) array[i]=(int)(Math.random()*10); for(int i=0;i<array.length;i++) { System.out.print(array[i]+" "); if((i+1)%10==0) System.out.println(); } System.out.println(); int sum=0; for(int i=0;i<array.length;i++) sum=sum+array[i]; System.out.println("Sum="+sum); } }

    (3) 求出数组中元素的最大值及其位置(若有多个相同的最大值,仅输出第一个),并输出。 代码:

    import java.util.Scanner; public class work2 { public static void main(String args[]) { int array[],n,i; Scanner scanner=new Scanner(System.in); System.out.println("数组长度为:"); n=scanner.nextInt(); array=new int[n]; for(i=0;i<array.length;i++) array[i]=(int)(Math.random()*10); for(i=0;i<array.length;i++) { System.out.print(array[i]+" "); if((i+1)%10==0) System.out.println(); } int max=0,site=0; for(i=0;i<array.length;i++) if(array[i]>max) max=array[i]; for(i=0;i<array.length;i++) if(array[i]==max) { site=i; break; } System.out.println(); System.out.println("最大值为:"+max+",是数组的第"+(i+1)+"个元素"); } } 定义一个二维整形数组data[5][6],数组中的元素在区间[0, 100)上随机赋值。找出数组中所有的具有这类性质的元素及其位置:该元素在所在行是最大的,但在其所在列是最小的。如果没有这样的元素,则输出“没有这样的元素”。 代码: import java.util.Scanner; public class work2 { public static void main(String args[]) { boolean flag=false; int data[][]=new int[5][6],maxx[]={0,0,0,0,0},miny[]={100,100,100,100,100,100}; for(int i=0;i<5;i++) { for(int j=0;j<6;j++) { data[i][j]=(int)(Math.random()*(100-10)); System.out.print(String.format("-",data[i][j])+" "); } System.out.println(); } for(int i=0;i<5;i++) { for(int j=0;j<6;j++) { if(maxx[i]<data[i][j]) maxx[i]=data[i][j]; } } for(int j=0;j<6;j++) { for(int i=0;i<5;i++) { if(miny[j]>data[i][j]) miny[j]=data[i][j]; } } for(int i=0;i<5;i++) for(int j=0;j<6;j++) { if(maxx[i]==miny[j]) { flag=true; System.out.println("存在这样的元素:"+maxx[i]+"在第"+(i)+1+"行,第"+(j+1)+"列"); } } if(!flag) 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 CF { public static void displayF(int c) { double f; f=9*c/5+32; System.out.println(f); } public static void displayC(int f) { double c; c=5*(f-32)/9; System.out.println(c); } public static void main(String[] args) { int n,C,F; boolean flag=false; Scanner scanner=new Scanner(System.in); while(!flag) { System.out.print("请输入你的选择(1:摄氏度转华氏度,2:华氏度转摄氏度,3:关闭程序):"); n=scanner.nextInt(); switch(n) { case 1: { System.out.print("请输入摄氏度:"); C=scanner.nextInt(); displayF(C); break; } case 2: { System.out.print("请输入华氏度:"); F=scanner.nextInt(); displayC(F); break; } case 3:System.exit(0); default: { flag=true; break; } } } } } Adapt the above program so that the user is not allowed to enter a temperature below absolute zero: this is -273.15C, or -459.67F. (修改以上程序,不允许用户输入的温度低于绝对零度,即-273.15C或-459.67F) 代码: import java.util.Scanner; public class CF { public static void displayF(int c) { double f; f=9*c/5+32; System.out.println(f); } public static void displayC(int f) { double c; c=5*(f-32)/9; System.out.println(c); } public static void main(String[] args) { int n,C,F; boolean flag=false; Scanner scanner=new Scanner(System.in); while(!flag) { System.out.print("请输入你的选择(1:摄氏度转华氏度,2:华氏度转摄氏度,3:关闭程序):"); n=scanner.nextInt(); switch(n) { case 1: { System.out.print("请输入摄氏度:"); C=scanner.nextInt(); if(C>=-273.15) { displayF(C); break; } else System.out.println("输入温度有误!"); } case 2: { System.out.print("请输入华氏度:"); F=scanner.nextInt(); if(F>=-459.67) { displayC(F); break; } else System.out.println("输入温度有误!"); } case 3:System.exit(0); default: { flag=true; 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.Scanner; public class plusarray { public static void main(String[] args) { int[] array=new int[10]; int n; boolean flag=true; Scanner scanner=new Scanner(System.in); System.out.print("请输入数的长度:"); n=scanner.nextInt(); for(int i=0;i<n;i++) array[i]=scanner.nextInt(); int temp; for(int i=0;i<n;i++) { for(int j=0;j<n-i-1;j++) { if(array[j]>array[j+1]) { temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } int sum=array[0]; for(int i=1;i<n;i++) { if(array[i]>sum) { sum=sum+array[i]; continue; } else { flag=false; break; } } System.out.print("“"); for(int i=0;i<n;i++) System.out.print(array[i]+" "); if(flag) System.out.println("”是超级递增序列。"); else System.out.println("”不是超级递增序列。"); scanner.close(); } } (选做)编写一个程序,从键盘读入一个句子(句子中可能包含空格、大小写字母、数字、标点符号等),试统计该句子中字符(不区分大小写)、数字、空格及其它字符的个数。 代码: import java.util.Scanner; public class TODAD { static int countchar=0; static int countdigi=0; static int countnull=0; static int countother=0; public static void calcu(char[] str) { for(int i=0;i<str.length;i++) { if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z') countchar++; else if(str[i]>='0'&&str[i]<='9') countdigi++; else if(str[i]==' ') countnull++; else countother++; } } public static void main(String[] args) { String S; Scanner sc=new Scanner(System.in); System.out.print("请输入字符串:"); S=sc.nextLine(); char[] c=S.toCharArray(); calcu(c); System.out.println("字符个数:"+countchar); System.out.println("数字个数:"+countdigi); System.out.println("空格个数:"+countnull); System.out.println("其他个数:"+countother); } }
    Processed: 0.023, SQL: 8