pessoal to com um problema tenho que ler um matriz quadrada 4 e transforma-la em um vetor de modo que as linhas estejam em sequencia começando da posição 0,0 e terminando na 4,4.
como deve ser a condição logica para isso ?
Fabio, boa tarde.
O que você fez até agora? Está com qual dificuldade? Seu código está dando erro?
a unica coisa que falta é a condiçao
public class ArrayMatriz1 {
public static void main (String args []){
int a [] = new int [16];
int b [] [] = new int [4] [4];
for(int l = 0 ; l<=3 ; l++){
for(int c = 0 ; c<=3 ; c++){
b[l][c]= (int)(Math.random()*100+1);
}
}
System.out.println("=============================== Matriz ==============================");
for(int l = 0 ; l<=3 ; l++){
System.out.println("");
for(int c = 0 ; c<=3 ; c++){
System.out.print(b[l][c]+"\t");
}
}
// condição que determina a posição do valor
for(int l = 0 ; l<=3 ;l++){
for(int c =0 ; c<=0 ; c++){
a[l] = b[l][c];
}
}
System.out.println("");
System.out.println("=============================== Vetor ==============================");
for(int x = 0; x<=15 ; x++){
System.out.print(a[x]+"\t");
}
}
}
esse é meu codigo ate o momento
Converta os índices com a formula:
iSequencial = i * largura + j;
Onde i é o número da linha, começado em 0.
E j é a coluna e largura é a quantidade de colunas.
Para inverter o índice a formula é:
i = iSequencial / largura;
j = iSequencial % largura;
public class ArrayMatriz1 {
public static void main (String args []){
int a [] = new int [16];
int b [] [] = new int [4] [4];
for(int l = 0 ; l<=3 ; l++){
for(int c = 0 ; c<=3 ; c++){
b[l][c]= (int)(Math.random()*100+1);
}
}
System.out.println("=============================== Matriz ==============================");
for(int l = 0 ; l<=3 ; l++){
System.out.println("");
for(int c = 0 ; c<=3 ; c++){
System.out.print(b[l][c]+"\t");
}
}
// condição que determina a posição do valor
for(int l = 0 ; l<=3 ;l++){
for(int c =0 ; c<=0 ; c++){
a[l*4+c] = b[l][c];
}
}
System.out.println("");
System.out.println("=============================== Vetor ==============================");
for(int x = 0; x<=15 ; x++){
System.out.print(a[x]+"\t");
}
}
}
com esse codigo consegui o segunte resultado :
--------------------Configuration: --------------------
=============================== Matriz ==============================
2 34 39 70
21 44 53 79
62 67 95 61
72 19 74 76
=============================== Vetor ==============================
2 0 0 0 21 0 0 0 62 0 0 0 72 0 0 0
gostaria de saber se algum pode me ajudar a exibir todas as posições .
No for onde você atribui a você está fazendo c<=0 ao invés de c<=3.
Por favor, ao postar códigos, use a tag code como descrito aqui:
tenho que gerar uma matriz aleatoria e depois em uma outra matriz ordenar a primeira de forma decrescente como faço isso ?
Existe o comando Arrays.sort, que ordena um array unidimensional.
e como faço para utiliar esse Array.sort ?
Se seu array for de tipos primitivos, basta fazer:
Arrays.sort(seuArray);
Se não for, tem que implementar a interface Comparable ou um Comparator:
Para usar a classe Arrays, você deve importa-la do pacote java.util:
import java.util.Arrays;
como dever ser a sintaxe para utilização do Array.sort(); eu não estou encontrando em local nenhum …?
[quote=1fabiopereira]como dever ser a sintaxe para utilização do Array.sort(); eu não estou encontrando em local nenhum …?[/quote]Ele colocou no post acima. O.o
[code]import java.util.Arrays;
public class ArrayMatriz2 {
public static void main (String args []){
int a [][] = new int [3][3];
int b [] [] = new int [3] [3];
for(int l = 0 ; l<=2 ; l++){
for(int c = 0 ; c<=2 ; c++){
a[l][c]= (int)(Math.random()*100+1);
}
}
System.out.println("=============================== Matriz A ==============================");
for(int l = 0 ; l<=2 ; l++){
System.out.println("");
for(int c = 0 ; c<=2 ; c++){
System.out.print(a[l][c]+"\t");
}
}
// condição que determina a posição do valor
for(int l = 0 ; l<=2 ;l++){
for(int c =0 ; c<=2 ; c++){
b[l][c] = a[l][c];
}
}
System.out.println("");
System.out.println("=============================== Matriz B ==============================");
for(int l = 0 ; l<=2 ; l++){
System.out.println("");
for(int c = 0 ; c<=2 ; c++){
System.out.print (b[l][c]+"\t");
}
}
}
}[/code]
esse é meu codigo ate o momento onde devo inserir o Array.sort(); e como para que a matriz b esteja em ordem decrescente?