Есть такой код, знаю не самый лучший, но есть нужно переделать что бы он заменял элементы главной диагонали каждой строки arsum'ом. Сейчас это частично но он заменяет немного не так
В данный момент он заменяет вот так а надо так
import java.io.*;
class MyCode {
public static void main(String[] args) {
int[][] array = new int[5][5];
int arsum = 0;
int k = 0;
array[0][0] = -3;
array[0][1] = 2;
array[0][2] = -2;
array[0][3] = 11;
array[0][4] = -1;
array[1][0] = 5;
array[1][1] = -12;
array[1][2] = -2;
array[1][3] = 9;
array[1][4] = -1;
array[2][0] = 2;
array[2][1] = -12;
array[2][2] = -2;
array[2][3] = 11;
array[2][4] = -1;
array[3][0] = 3;
array[3][1] = 2;
array[3][2] = -8;
array[3][3] = -9;
array[3][4] = 10;
array[4][0] = 5;
array[4][1] = -7;
array[4][2] = 6;
array[4][3] = -11;
array[4][4] = 0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j] + "\t");
}
System.out.println();
}
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
if (array[i][j] > 0) {
arsum = arsum + array[i][j];
}
}
array[i][k] = arsum;
k++;
System.out.print(i + "\t строка - сумма положительных элементов =" + arsum + "\n");
arsum = 0;
}
for (int n = 0; n < array.length; n++) {
for (int m = 0; m < array[n].length; m++) {
System.out.print(array[n][m] + "\t");
}
System.out.println();
}
}
}
Сформулирую понятую мною постановку вопроса.
Имеем матрицу n*n
в которой, по горизонтали высчитывается сумма всех положительных чисел и присваивается тому элементу, который принадлежит диагонали, по данной горизонтали, с левого верхнего угла матрицы до правого нижнего угла матрицы.
В вопросе обозначено три цикла.
Ссылка на вывод
В том ли проблема у автора, что он использует три цикла?
Попробовал реализовать немного иначе, наверняка есть решение изящнее. Решил генерировать значения элементов в диапазоне от min
до max
.
Random randomez = new Random();
int[][] array = new int[5][5];
int min = -10;
int max = 10;
//int arsum = 0;
//int k = 0;
for (int i = 0; i < array.length; i++) {
int summaDiagonal = 0;
for (int j = 0; j < array[i].length; j++) {
array[i][j] = randomez.nextInt(max - min + 1) + min;
if(array[i][i] < 0){
array[i][i] = 0;
}
if (j != i) {
if(array[i][j] > 0){
summaDiagonal = array[i][j] + summaDiagonal;
}
}
}
array[i][i] = summaDiagonal;
for (int z = 0; z < array[i].length; z++) {
System.out.print(array[i][z] + "\t\t");
if(z == array[i].length - 1){
System.out.println();
}
}
}
На выходе
17 8 9 -4 -6 //17 =0 + 8 + 9, на месте 17 было отр число и мы его обнулили, что бы не складывать к отр числу
2 11 8 -5 1 //11 = 0 + 2 + 8 + 1
-6 -1 8 -1 8 //8 = 8 + 0
-9 -3 -1 7 7 //7 = 0 + 7
-10 1 -1 9 10 //10 = 1 + 9 + 0
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть класс унаследованный от BroadcastReceiver, в нем создаются напоминания, так же у меня есть активити которое создает и сохраняет список...
Подскажите, пожалуйста, как сделать, чтобы в Slick слайдере, при клике на любой слайд, в том числе и даже первый, делалось перелистывания сладейдеровПотому...