Boa Tarde,
Queria enviar todos os 0 para o fim do array, como posso fazer isso?
int[] nums = {2, 4, 10, 2};
int[] num = new int[nums.length];
for (int i = 0; i < nums.length; i++) {
if(nums[i] == 10){
num[i] = 0;
}else {
num[i] = nums[i];
}
}
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}
Muito Obrgado
Sinceramente não entendi oque vc quer.
Explique melhor.
ora com esse codigo o array vai ficar assim {2, 4, 0, 2}
e o k eu quero é assim {2, 4, 2, 0}
Obrigado
[quote=GuilhermeG]Boa Tarde,
Queria enviar todos os 0 para o fim do array, como posso fazer isso?
int[] nums = {2, 4, 10, 2};
int[] num = new int[nums.length];
for (int i = 0; i < nums.length; i++) {
if(nums[i] == 10){
num[i] = 0;
}else {
num[i] = nums[i];
}
}
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}
Muito Obrgado[/quote]
Depois de fazer isso você pode ordenar os dados.
int[] nums = {2, 4, 10, 2};
int[] num = new int[nums.length];
int auxiliar; //serve como auxiliar para podermos ordenar
for (int i = 0; i < nums.length; i++) {
if(nums[i] == 10){
num[i] = 0;
}else {
num[i] = nums[i];
}
}
for (i = 0; i < num.length - 1; i++)
{
for (int j = i + 1; i < num.length; j++)
{
if (nums[i] < num[j]) // assim ele colocará em ordem decrescente.
{
auxiliar = num[j];
num[j] = nums[i];
nums[i] = auxiliar;
}
}
}
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}
Só acho desnecessário as 2 arrays, se você não for precisar da array antiga, voce pode fazer assim:
int[] nums = {2, 4, 10, 2};
int auxiliar; //serve como auxiliar para podermos ordenar
for (int i = 0; i < nums.length; i++) {
if(nums[i] == 10){
nums[i] = 0;
}else {
nums[i] = nums[i];
}
}
for (i = 0; i < nums.length - 1; i++)
{
for (int j = i + 1; i < nums.length; j++)
{
if (nums[i] < nums[j]) // assim ele colocará em ordem decrescente.
{
auxiliar = nums[j];
nums[j] = nums[i];
nums[i] = auxiliar;
}
}
}
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
O problema é que eu acho que ele não quer que seja ordenado. Ele só quer passar o valor 0 para o final e manter a ordem anterior dos dados.
exacto
{1, 10 , 3, 10 , 2 , 3}
ficaria assim
{1 , 3 , 2 , 3, 0 , 0}
alguém tem ideia de como fazer?
Obrigado:)
[quote=GuilhermeG]exacto
{1, 10 , 3, 10 , 2 , 3}
ficaria assim
{1 , 3 , 2 , 3, 0 , 0}
alguém tem ideia de como fazer?
Obrigado:) [/quote]
E o 10? tem que mandar o 0 (simplesmente) para o final ou todo numero que tiver 0?
o 10 passa a 0 e vai para o final so
Obrigado 
[quote=pvrsouza][quote=GuilhermeG]exacto
{1, 10 , 3, 10 , 2 , 3}
ficaria assim
{1 , 3 , 2 , 3, 0 , 0}
alguém tem ideia de como fazer?
Obrigado:) [/quote]
E o 10? tem que mandar o 0 (simplesmente) para o final ou todo numero que tiver 0?[/quote]
bom vc pode verificar se o número é uma dezena, talvez com o mod vc consiga saber, se for 0 incrementa um contador para saber qntos numeros foram retirados, se vc achar um número que nao pode ser tirado… vc o coloca dentro de um outro array auxiliar. Após essa operação com o seu contador, vc poe no seu novo array a quantidade de numeros 0 que o seu contador contou… +/- isso ae