1. 设计一个类(不妨叫做A ),实现对一维数组(a[100])的指定范围内的元素相加运算。
package hw2; import java.util.Scanner;//从键盘输入数据需scanner public class A{ public static void main(String[]args){ int[] a={-2574,-4010,8243,771,2447,-5197,2556,8044,3314,3617,6065,-2817,3131,6318,2186,-113,629,-2582,-37,-1520,164,2055,-5936,5912,1717,5988,4781,5757,892,-4394,8034,2213,-1080,-2080,5364,106,2657,566,3940,-5116,4583,1806,6555,2621,-7197,528,1626,18,1049,6243,3198,4397,-1325,9087,936,-6291,662,-178,135,-3473,-2385,-165,1713,-7949,-4234,1138,2212,104,6968,-3632,3801,1137,-1296,-1215,4272,6223,-5922,-7723,7044,-2938,-8180,1356,1159,-4022,-3713,1158,-8715,-4081,-2541,-2555,-2284,461,940,6604,-3631,3802,-2037,-4354,-1213,767}; int sum=0;//存放和 Scanner arr=new Scanner(System.in);//实例化对象,用arr调用方法 System.out.println("起点x1");//表示从第x1开始 int x1=arr.nextInt() ; System.out.println("终点x2");//表示在第x2结束 int x2=arr.nextInt(); for(int i=x1-1;i<=x2-1;i++)//数组a[i]表示第(i-1)个,因为第一个数组为a[0]而不是a[1] sum+=a[i];//累计求和 System.out.println("从"+x1+"到"+x2+"的和为"); System.out.println(sum); } }
运行结果:
2. 设计一个类(不妨叫做B ),实现对二维数组(a[N][M])的指定范围内的元素相加运算。
package hw2; import java.util.Scanner; public class B{ public static void main(String[]args){ int[][] a={{-2574,-4010,8243,771,2447,-5197,2556,8044,3314,3617,6065,-2817,3131,6318,2186,-113,629,-2582,-37,-1520,164,2055,-5936,5912,1717,5988,4781,5757,892,-4394,8034,2213,-1080,-2080,5364,106,2657,566,3940,-5116,4583,1806,6555,2621,-7197,528,1626,18,1049,6243,3198,4397,-1325,9087,936,-6291,662,-178,135,-3473,-2385,-165,1713,-7949,-4234,1138,2212,104,6968,-3632,3801,1137,-1296,-1215,4272,6223,-5922,-7723,7044,-2938,-8180,1356,1159,-4022,-3713,1158,-8715,-4081,-2541,-2555,-2284,461,940,6604,-3631,3802,-2037,-4354,-1213,767},{2740,-4182,-5632,-2966,-1953,567,-8570,1046,2211,1572,-2503,-1899,3183,-6187,3330,3492,-464,-2104,316,8136,470,50,466,-1424,5809,2131,6418,-3018,6002,-8379,1433,1144,2124,1624,-602,-5518,5872,870,-5175,-3961,-427,-6284,2850,481,6175,141,-766,-1897,-748,-4248,366,4823,3003,1778,3256,2182,2253,5076,5540,-2650,2451,-1875,5482,-6881,-329,-969,-8032,-2093,612,1524,-5492,5758,-7401,-5039,3241,6338,3581,4321,-1072,4942,2131,210,-7045,-7514,7450,-1142,-2666,-4485,-639,2121,-5298,-3805,-1686,-2520,-1680,2321,-4617,-1961,2076,7309}}; int sum=0; Scanner arr=new Scanner(System.in); System.out.println("起点x1");//将二维数组看作是平面直角坐标系,有x,y两个坐标 int x1=arr.nextInt(); System.out.println("终点x2");//x取值为1,2 int x2=arr.nextInt(); System.out.println("起点y1"); int y1=arr.nextInt(); System.out.println("终点y2");//y取值为1-100 int y2=arr.nextInt(); for(int i=x1-1;i<=x2-1;i++){ for(int j=y1-1;j<=y2-1;j++){ sum+=a[i][j]; } } System.out.println("从("+x1+","+y1+")到"+"("+x2+","+y2+")的和为"); System.out.println(sum); } }
运行结果:
3. 设计一个类(不妨叫做C ),实现对三维数组(a[N][M][K])的指定范围内的元素相加运算。
package hw2; import java.util.Scanner; public class C{ public static void main(String[]args){ int sum=0; int[][][] a={ {{-2574,-4010,8243,771,2447,-5197,2556,8044,3314,3617,6065,-2817,3131,6318,2186,-113,629,-2582,-37,-1520,164,2055,-5936,5912,1717,5988,4781,5757,892,-4394,8034,2213,-1080,-2080,5364,106,2657,566,3940,-5116,4583,1806,6555,2621,-7197,528,1626,18,1049,6243,3198,4397,-1325,9087,936,-6291,662,-178,135,-3473,-2385,-165,1713,-7949,-4234,1138,2212,104,6968,-3632,3801,1137,-1296,-1215,4272,6223,-5922,-7723,7044,-2938,-8180,1356,1159,-4022,-3713,1158,-8715,-4081,-2541,-2555,-2284,461,940,6604,-3631,3802,-2037,-4354,-1213,767}}, {{2740,-4182,-5632,-2966,-1953,567,-8570,1046,2211,1572,-2503,-1899,3183,-6187,3330,3492,-464,-2104,316,8136,470,50,466,-1424,5809,2131,6418,-3018,6002,-8379,1433,1144,2124,1624,-602,-5518,5872,870,-5175,-3961,-427,-6284,2850,481,6175,141,-766,-1897,-748,-4248,366,4823,3003,1778,3256,2182,2253,5076,5540,-2650,2451,-1875,5482,-6881,-329,-969,-8032,-2093,612,1524,-5492,5758,-7401,-5039,3241,6338,3581,4321,-1072,4942,2131,210,-7045,-7514,7450,-1142,-2666,-4485,-639,2121,-5298,-3805,-1686,-2520,-1680,2321,-4617,-1961,2076,7309}}, {{302,-7944,-6551,6648,-884,-6332,1188,-248,3902,-2171,-3782,-3510,6203,-636,-4605,4497,3187,-6278,1198,-7963,7647,-3022,-8267,7995,-1998,-4171,730,-8117,-1706,7601,-2454,-6161,-1810,243,-2841,-5377,2985,2328,177,5622,3596,3057,2830,-1151,6566,2254,6972,-3060,4063,367,84,3156,3880,-1530,5272,1385,-565,-1736,1267,-3863,-229,2072,2423,-7449,9555,2844,-1278,-3613,-919,4153,-4232,4032,-5732,199,4792,2498,-3344,-4193,2650,-579,3416,-3575,1822,-6936,-2661,-1873,414,2314,6844,7613,-7844,6680,5974,2208,-3597,6302,4396,-141,-1864,1939}} }; Scanner arr=new Scanner(System.in) ; System.out.println("起点x1");//将三维数组看作是空间直角坐标系,有x,y,z三个坐标 int x1=arr.nextInt(); System.out.println("终点x2");//x取值1,2,3 int x2=arr.nextInt(); System.out.println("起点y1"); int y1=arr.nextInt(); System.out.println("终点y2");//y取值1 int y2=arr.nextInt(); System.out.println("起点z1"); int z1=arr.nextInt(); System.out.println("终点z2");//z取值1-100 int z2=arr.nextInt(); for(int i=x1-1;i<=x2-1;i++){ for(int j=y1-1;j<=y2-1;j++){ for(int k=z1-1;k<=z2-1;k++){ sum+=a[i][j][k]; } } } System.out.println("从("+x1+","+y1+","+z1+")到"+"("+x2+","+y2+","+z2+")的和为"); System.out.println(sum); } }
运行结果:
小结:
数组的数据是由老师提供的,数据量不算大但也决不算小,数据的导入是由人工完成的,感觉挺麻烦的,但是直接导入又不会,尽管网上找了找看了看,还是理解不了。程序用scanner类和nextint()方法来从键盘中获取数据,数组的输出用for循环语句,在三维数组中用到了三重循环。在调试过程中,前两个没遇到什么大问题,最后一个输入数据后一直出现问题,还又是英文的注释,没有看懂,不过幸好舍友提醒了我取值的范围,才发现我的确是取值出了问题,最后总算是弄了出来,虽然并没有完全的靠自己,询问借鉴了别人,但是还是挺高兴的,毕竟自己能搞出些东西。
做这个Java程序,感觉自己学的不够,很多基础的也都不行,今后会多看书多练习,慢慢巩固积累,学会更多的java知识和软件工程知识。