В языке Java не совсем правильно пользоваться термином
"двумерный массив", потому что такая конструкция в Java совершенно не
обязательно "прямоугольная". Так что гораздо правильнее использовать
термин "массив массивов", то есть массив, каждая ячейка которого
содержит массив.
Разумеется, для таких элементов использование
методов становится еще более актуальным – и для начала предлагаю несколько не
очень сложных задач.
Задание №1
Напишите класс, который гибко создает массив
массивов (попробуйте, кстати, использовать для этого случайные числа, мы,
кажется, этого еще не делали) и затем заполняет его. Разумеется, после
заполнения его надо вывести на экран.
Задание №2
Сделайте все, как в предыдущей задаче, а затем
для каждого "внутреннего" массива найдите сумму его значений, и
укажите ее при построчной выводе массивов на экран.
Задание №3
И снова повторите создание и заполнение массива
массивов, а затем для каждого "внутреннего" массива найдите
максимальное значение, которое, разумеется, тоже надо вывести на экран – рядом
с построчным выводом "внутренних" массивов.
Задание №4
Заполнить массив массивов – и найти максимальное
число, в нем содержащееся, а также указать, где оно в массиве массивов
расположено.
import java.util.*;
ОтветитьУдалитьclass n1
{ static Scanner reader=new Scanner(System.in);
public static void main(String[] args)
{ int a[][]=new int[reader.nextInt()][reader.nextInt()];
int x=reader.nextInt(), y=reader.nextInt();
zapolni(a,x,y);
for (int i=0;i<a.length;i++)
System.out.println (Arrays.toString(a[i])); }
static void zapolni(int [][] b, int m, int n)
{ for(int i=0;i<b.length;i++)
for (int j=0;j<b[i].length;j++)
b[i][j]=m+(int)(n*Math.random()); }}
import java.util.*;
ОтветитьУдалитьclass n2
{ static Scanner reader=new Scanner(System.in);
public static void main(String[] args)
{ int a[][]=new int[reader.nextInt()][reader.nextInt()];
int x=reader.nextInt(), y=reader.nextInt();
zapolni(a,x,y);
for (int i=0;i<a.length;i++)
{ System.out.println (Arrays.toString(a[i]));
System.out.println(summa(a[i])); } }
static void zapolni(int [][] b, int m, int n)
{ for(int i=0;i<b.length;i++)
for (int j=0;j<b[i].length;j++)
b[i][j]=m+(int)(n*Math.random()); }
static int summa(int []c)
{ int sum=0;
for (int i=0;i<c.length;i++)
sum=sum+c[i];
return sum; }}
Этот комментарий был удален автором.
ОтветитьУдалитьimport java.util.*;
ОтветитьУдалитьclass n2
{ static Scanner reader=new Scanner(System.in);
public static void main(String[] args)
{ int a[][]=new int[reader.nextInt()][reader.nextInt()];
int x=reader.nextInt(), y=reader.nextInt();
zapolni(a,x,y);
for (int i=0;i<a.length;i++)
{ System.out.println (Arrays.toString(a[i]));
System.out.println(maximum(a[i])); } }
static void zapolni(int [][] b, int m, int n)
{ for(int i=0;i<b.length;i++)
for (int j=0;j<b[i].length;j++)
b[i][j]=m+(int)(n*Math.random()); }
static int maximum(int []c)
{ int max=c[0];
for (int i=0;i<c.length;i++)
max=Math.max(c[i],max);
return max; }}
import java.util.*;
ОтветитьУдалитьclass n2
{
static Scanner reader=new Scanner(System.in);
public static void main(String[] args)
{ int a[][]=new int[reader.nextInt()][reader.nextInt()];
int x=reader.nextInt(), y=reader.nextInt();
zapolni(a,x,y);
for (int i=0;i<a.length;i++)
System.out.println (Arrays.toString(a[i]));
System.out.println(Arrays.toString(maximum(a))); }
static void zapolni(int [][] b, int m, int n)
{ for(int i=0;i<b.length;i++)
for (int j=0;j<b[i].length;j++)
b[i][j]=m+(int)(n*Math.random()); }
static int[] maximum(int [][]c)
{ int k[]=new int [3];
int max=c[0][0];
for (int i=0;i<c.length;i++)
for (int j=0;j<c[i].length;j++)
{ max=Math.max(c[i][j],max);
if (c[i][j]==max)
{ k[0]=max;
k[1]=i;
k[2]=j; } }
return k; }}
Названия двух последних классов не соответствуют номеру задач, извиняюсь. Решения опубликованы по порядку
ОтветитьУдалитьЗамечательно, просто слов других нет, честно.
ОтветитьУдалитьиспользую твои, Аня, решения, в задачнике, который мы готовим к выпуску.