Не получается вернуть метод. В чем ошибка?
Если нужно, вот задача:
Даны два числа - n и m. Создайте двумерный массив A[n][m], заполните его таблицей умножения A[i][j]=i*j и выведите на экран. При этом нельзя использовать вложенные циклы, все заполнение массива должно производиться одним циклом.
Входные данные
Программа получает на вход два числа n и m – количество строк и столбцов, соответственно.
Выходные данные
Программа должна вывести полученный массив. Под каждое число отводите четыре знакоместа. Например, число 8 должно быть
напечатано с тремя пробелами перед ним.
import java.util.Scanner;
public class MyProgram {
public static int line(int i, int j, int a[][]) {
int [] [] A = new int [n] [m];
for (j = 0; j < A[i][j].length; j++) {
A[i][j] = i * j;
}
return A[][];
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt(), m = in.nextInt();
int a[][] = new int[n][m];
int j = 0;
for (int i = 0; i < a.length; i++) {
line(i, j, a[][]);
}
for (int i = 0; i < a.length; i++) {
for (int k = 0; k < a[i].length; k++) {
System.out.println(a[i][k]);
}
}
}
}
import java.util.Scanner;
public class Main {
public static void line(int k, int a[][], int n) {
for (int i = 0; i < n; i++) {
a[i][k] = i * k;
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt(), m = in.nextInt();
int a[][] = new int[n][m];
for (int i = 0; i < m; i++) {
line(i, a,n);
}
for (int i = 0; i < a.length; i++) {
for (int k = 0; k < a[i].length; k++) {
System.out.println(a[i][k]);
}
}
}
}
вы хотите вернуть из метода массив. поэтому надо объявить в начале метода, что вы хотите вернуть, а вернуть только переменную. (наверное объяснил непонятно, поэтом ловите кусок вашего кода)
p.s. код не смотрел, просто ответил на сам вопрос "почему не возвращается массив из метода"
public static int [][] line(int i, int j, int a[][]) {
int [] [] A = new int [n] [m];
for (j = 0; j < A[i][j].length; j++) {
A[i][j] = i * j;
}
return A;
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// введем наши N, M и создадим матрицу по ним
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int [][]A = new int [n][m];
// объявим наши индексы
int i = 0;
int j = 0;
// вместо классик вложенных for{for{...}} будем использовать do-while, где будем сами проgисывать действия циклов for
do{
A[i][j] = i*j; // умножаем и записываем число
// теперь займемся условием по "4 знак-место"
int space = 4; // у нас есть 4 места, куда мы можем разместить наше число
double a = A[i][j]; // копия нашего числа. через него будем узнавать, сколько пробелов надо
do{
a /= 10; // делим наше число на 10
space--; // у уменьшаем кол-во нужных пробелов
}while (a>=1); // пока наше число не будет <1
probel(space); // вызываем метод, который поставит нужное кол-во пробелов
System.out.print(A[i][j]); // наконец записываем само число
j++; // увеличим индекс на 1
if (j>=m){ // сделаем проверку "мы вышли за пределы матрицы?", и если ответ ДА
j=0; // обнулим этот индекс
i++; // а этот увеличим
System.out.println("\n"); // ну и начнем дальше с новой сстроки. у нас же "таблица"
}
}while (i<n); // и все это мы делаем пока 0<=i<n
}
// метод для пробелов. использовал точки, чтобы удобно было считать
public static void probel(int space){ // передаем в метод наше кол-во пробелов
for (int i=0; i<space; i++){ // делаем цикл на кол-во пробелов
System.out.print("."); // и вписываем пробел
}
}
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости