每日小语
伟大企业的一项特质是“利润之上的追求”。——段永平
思考
方法调用
方法调用是通过在代码中使用方法名和参数列表来实现的。
public class MethodExample {public static void main(String[] args) {// 调用方法add,并传入两个参数int sum = add(3, 5);System.out.println("The sum is: " + sum);// 调用方法sayHellosayHello("Alice");}// 定义一个方法add,接收两个整数参数,并返回它们的和public static int add(int a, int b) {return a + b;}// 定义一个方法sayHello,接收一个字符串参数,并输出问候语public static void sayHello(String name) {System.out.println("Hello, " + name + "!");}
}
自己敲写了一下
import java.util.Random;
import java.util.Scanner;
//以m行n列二维数组为参数进行方法调用,分别计算二维数组各列元素之和,返回并输出计算结果
public class MethodCalls17
{public static void main(String[] args){//m行n列二维数组Scanner scanner = new Scanner(System.in);System.out.print("输入数组的行数:");int m = scanner.nextInt();System.out.print("输入数组的列数:");int n = scanner.nextInt();//产生随机数(假设0-100System.out.print("数组为:");Random random = new Random();int[][] array = new int[m][n];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {array[i][j] = random.nextInt(101);System.out.print(array[i]+" ");}}//二维数组各列元素之和public static double SumOfColumn(int[][] array){}}
}
我不知道如何传入列。
不知道什么问题
-
在循环生成二维数组元素时,您应该打印
array[i][j]
而不是array[i]
,因为array[i]
是一个一维数组,应该使用array[i][j]
来访问二维数组的元素。 -
在调用
SumOfColumn
方法时,应该传入列数j
而不是行数k
。 -
在
SumOfColumn
方法中,应该使用参数k
作为列数的索引,而不是在循环中使用n
。 -
在
SumOfColumn
方法中,应该返回计算结果sum
。import java.util.Random; import java.util.Scanner; //以m行n列二维数组为参数进行方法调用,分别计算二维数组各列元素之和,返回并输出计算结果 public class MethodCalls17 {public static void main(String[] args){//m行n列二维数组Scanner scanner = new Scanner(System.in);System.out.print("输入数组的行数:");int m = scanner.nextInt();System.out.print("输入数组的列数:");int n = scanner.nextInt();//产生随机数(假设0-100)System.out.print("数组为:");Random random = new Random();int[][] array = new int[m][n];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {array[i][j] = random.nextInt(101);System.out.print(array[i][j]+" ");}}//调用方法for(int k=0;k<m;k++){double sum = SumOfColumn(array, k);System.out.println("第 " + k + " 列元素之和为: " + sum);}//二维数组各列元素之和public static double SumOfColumn(int[][] array,int k){double sum=0;for(int l=0;l<k;l++){sum=sum+array[l][n];}}}private static double SumOfColumn(int[][] array, int k) {// TODO Auto-generated method stubreturn 0;} }
又修正了一些
在Java中,方法参数不允许使用访问修饰符(如public、private等),只能使用final修饰符。
大括号位置放错了
终极代码
import java.util.Random;
import java.util.Scanner;
//以m行n列二维数组为参数进行方法调用,分别计算二维数组各列元素之和,返回并输出计算结果
public class MethodCalls17
{public static void main(String[] args){//m行n列二维数组Scanner scanner = new Scanner(System.in);System.out.print("输入数组的行数:");int m = scanner.nextInt();System.out.print("输入数组的列数:");int n = scanner.nextInt();//产生随机数(假设0-100)System.out.print("数组为:");Random random = new Random();int[][] array = new int[m][n];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {array[i][j] = random.nextInt(101);System.out.println("array["+i+"]["+j+"]:"+array[i][j]);}}//调用方法for(int k=0;k<n;k++)//不是m是n{double sum = SumOfColumn(array, k);System.out.println("第 " + k + " 列元素之和为: " + sum);}}//二维数组各列元素之和public static double SumOfColumn(int[][] array,int k){double sum=0;for(int l=0;l<array.length;l++){sum=sum+array[l][k];}return sum;}//不能把该方法放在第二个public里
}