Ajuda vetor com while

23 respostas
jane_bravo

o qtem d erradoo agora…?eu kero q o usuario entre com a quantidade de vetor aqte quando ele quiser e depois mostre a soma pra mim desse vetor… :frowning: :frowning: :frowning: :frowning: :frowning: :frowning: :frowning:

import javax.swing.*;

public class soma{

public static void main(String args[]){

int vetor1[] , vetor2[], vet1, vet2;

int soma=0;

boolean sair;

sair = true;

char op1;

String op;
while (sair){
for (int i = 0; i< vetor1.length; i++)
for (int i = 0; i< vetor2.length; i++)
vetor1[i]= Integer.parseInt(JOptionPane.showInputDialog("digite o elemento do vetor  " ));
vetor2[i]=Integer.parseInt(JOptionPane.showInputDialog("digite o elemento do vetor  " ));

soma = vetor1[i] + vetor2[i];

 op = JOptionPane.showInputDialog("deseja continuar:");
     	op1=op.charAt(0);//converte string para char
    	 if ((op1 == 's') | (op1 == 'S'))
       	 sair=false;
}

JOptionPane.showMessageDialog(null,“A soma é:” + soma);
}

}

23 Respostas

Reilander
  1. proxima vez que postar um codigo, coloque-o entre as tags “code”
  2. sua estrutura ta errada. Ha duas variaveis locais “i”.
  3. se quiser fazer referencia a esse “i” mais na frente, precisa declara-lo
    fora do for.
  4. nenhum dos vetores foram inicializados
    5)…
    6)…

voce nao se esforcou o bastante!

jane_bravo

e agora?? :frowning: :frowning: :frowning: :frowning: :frowning: :frowning:

import javax.swing.*;

public class soma{

public static void main(String args[]){
int vetor1[] , vetor2[];

int soma=0;

boolean sair;

sair = true;

char op1;

String op;
while (sair){
for (int i = 0; i< vetor1.length; i++){
for (int j = 0; j< vetor2.length;j++){
vetor1[i]= Integer.parseInt(JOptionPane.showInputDialog("digite o elemento do vetor  " ));
vetor2[j]=Integer.parseInt(JOptionPane.showInputDialog("digite o elemento do vetor  " ));

soma = vetor1[i] + vetor2[j];

 op = JOptionPane.showInputDialog("deseja continuar:");
     	op1=op.charAt(0);//converte string para char
    	 if ((op1 == 's') | (op1 == 'S'))
       	 sair=false;
}
}
}

JOptionPane.showMessageDialog(null,“A soma é:” + soma);
}

}

colored

Nossa que brisa,

vc ker que o usuario digite de q tamanho é a array? e depois ele digite os valores do vetor?

se for isso seu codigo ta meio errado =]…

jane_bravo

isso!!! :lol: me ajuda por favor!!!1 :frowning: :frowning: :frowning: :frowning: :frowning:

GustavoLaguna

Jane, não é por nada não. Mas já é o terceiro ou quarto tópico que voce abre e não coloca o código dentro das tags [code] e em todos os tópicos o pessoal te avisa.

Por favor, leve em consideração que o pessoal está aqui para te ajudar e colocar o código dentro das tags ajuda, e mto!

colored

Olha eu nao sou mto bom em fazer esses 2 for juntos mas o seu com certeza num ia ir…

dei uma pensada e fiz um teco do codigo pra vc ta funcionando de boa…

eu fiz se a primeira array for maior que a segunda da certo… n vo faze tudo nem tenho q trampa…

import javax.swing.JOptionPane;

public class Somando {
	
	public static void main(String[] args) {
		int y = 0, x = 0,soma = 0,i = 0,j=0, tamar1 = 0,tamar2 = 0; // tamanho da array;
		
		x = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Tamanho da Array 1"));
		y = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Tamanho da Array 2"));
		
		int array1 [] = new int[x];
		int array2 [] = new int[y];
		
			tamar1 = array1.length;
			tamar2 = array2.length;
			
			
			if(tamar1 > tamar2){
				for(j = 0; j < tamar2; j++){
					array1[j] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 1"));
					array2[j] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 2"));
					soma += array1[j] + array2[j];

				}
				for(i = j; i < tamar1; i++){
					array1[i] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 1"));
					soma += array1[i];
				}
			
			}
			System.out.println(soma);

	}
}
colored

Pensei assim…

se uma array tem 4 e outra 2…

Primeiro ele adiciona os itens ate o 2 pq a segunda array n vai poder armazenar mais uma iteração do for
que vai estorar a array…

entao ele faz 2 ai eu faço outro for pegando o valor do contador pra continuar dali…
so com o resto da outra array…

=D…

GustavoLaguna

Humm, tenho algumas duvidas sobre o código.

Acho que voce não precisa criar as variaveis tamar1 e tamar2 porque voce já tem eles nas variaveis x e y.

Também não precisa do

if (tamar1 >tamar2)

afinal, voce vai soma-los de qualquer maneira. O que pode-se fazer é somar os 2 apenas quando tiverem o mesmo número de elementos ou coisa assim.

Para receber os elementos, se forem 2 array de mesmo tamanho voce pode fazer no mesmo for e já somar, caso contrário seria melhor se voce montasse um for para cada array e ir adicionando o valor a soma total.

Abraço

M

Jane. Acho que vc não conseguirá fazer os fors se não tem o tamanho dos arrays…

GustavoLaguna

O usuário irá colocar o tamanho dos dois arrays antes.

M

é que eu mandei a resposta antes de atualizar… foi mal…

rsrsrss

GustavoLaguna

:thumbup:

colored

Achei Agora ta Certo =P

public class Somando {
	
	public static void main(String[] args) {
		int y = 0, x = 0,soma = 0,i = 0,j = 0,pode = 0;
		
		x = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Tamanho da Array 1"));
		y = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Tamanho da Array 2"));
		
		int array1 [] = new int[x];
		int array2 [] = new int[y];
		
			
			if(x > y){
				pode = 0;
			}
			else if(y > x){
				pode = 1;
			}
			else{
				pode = 2;
			}
			
			if(pode == 0 || pode ==2){
				for(j = 0; j < y; j++){
					array1[j] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 1"));
					array2[j] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 2"));
					soma += array1[j] + array2[j];

				}
				if(pode == 0){
				for(i = j; i < x; i++){
					array1[i] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 1"));
					soma += array1[i];
				}
				}
			
			}
			
			if(pode == 1){
				for(j = 0; j < x; j++){
					array1[j] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 1"));
					array2[j] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 2"));
					soma += array1[j] + array2[j];
				}
				for(i = j; i< y; i++){
					array2[i] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 2"));
					soma += array2[i];	
				}
			}
			System.out.println(soma);

	}
}
GustavoLaguna

Cara, acho que deve funcionar o seu código, não tenho como testar aqui… mas gosto de fazer as coisas um pouco mais simples, ainda mais para alguém que está começando.

public class Somando {
	
	public static void main(String[] args) {
		int y = 0, x = 0,soma = 0;
		
		x = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Tamanho da Array 1"));
		y = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Tamanho da Array 2"));
		
		int array1 [] = new int[x];
		int array2 [] = new int[y];

		for(int i = 0; i < x; i++) {
			array1[i] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento "+i+" da Array 1"));
			soma += array1[i];
		}

		for(int i = 0; i < y; i++) {
			array2[i] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento "+i+" da Array 2"));
			soma += array2[i];
		}

		System.out.println(soma);
	}
}
GustavoLaguna

Apesar que esse código me parece um pouco estranho, afinal para que guardar os valores no array se voce não está utilizando eles? Poderiamos apenas somar direto.

colored

Assim?
Bom n precisa mesmo… Mas sei la

public class Somando {
	
	public static void main(String[] args) {
		int y = 0, x = 0,soma = 0,i = 0,j = 0,pode = 0; 
		
		x = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Tamanho da Array 1"));
		y = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Tamanho da Array 2"));
		
		int array1 [] = new int[x];
		int array2 [] = new int[y];
		
			
			if(x > y){
				pode = 0;
			}
			else if(y > x){
				pode = 1;
			}
			else{
				pode = 2;
			}
			
			if(pode == 0 || pode ==2){
				for(j = 0; j < y; j++){
					soma += Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 1"));
					soma += Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 2"));
				}
				if(pode == 0){
				for(i = j; i < x; i++){
					soma += Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 1"));	
					}
				}
			
			}
			
			if(pode == 1){
				for(j = 0; j < x; j++){
					soma += Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 1"));
					soma += Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 2"));
				}
				for(i = j; i< y; i++){
					soma += Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 2"));	
				}
			}
			System.out.println(soma);
	}
}
M

Acho que tbm pode ser assim.

import javax.swing.JOptionPane;

public class Somando {

	public static void main(String[] args) {
		int y = 0, x = 0,soma = 0,soma1 = 0, i = 0,j = 0;
		x = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Tamanho da Array 1"));
		y = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Tamanho da Array 2"));
		int array1 [] = new int[x];
		int array2 [] = new int[y];
		for(i = j; i < x; i++){
			array1[i] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 1"));
			soma += array1[i];
		}
		for(i = j; i< y; i++){
			array2[i] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Elemento da Array 2"));
			soma1 += array2[i];	
		}
		int total = soma + soma1;
		System.out.println(total);
	}
}

:)

GustavoLaguna

:slight_smile:

colored, seu código está um pouco complexo, voce pode resolver esse monte de if usando apenas mais 1 for, com certeza vale a pena.

Abração

colored

Tipo 2 for encadeado… isso eu ja tinha ate dito q eu num so mto bom…

Tipo fico meio complexo pq diferente da aplicação do zanini…

Ele vai Array1 Array 2 Array 1 Array 2…

Ai da um pk mais de trampo =d

colored

Pensei q era assim se nao nem tinha eskentado a cabeça =P…

GustavoLaguna

colored:
Tipo 2 for encadeado… isso eu ja tinha ate dito q eu num so mto bom…

Tipo fico meio complexo pq diferente da aplicação do zanini…

Ele vai Array1 Array 2 Array 1 Array 2…

Ai da um pk mais de trampo =d

Ai que está o X da questão. ou melhor os 2 X da questão:

1ºX: Não tem for encadeado , são dois for separados. :slight_smile:
2ºX: Ter um for dentro de outro é algo que voce vai precisar mais cedo ou mais tarde, principalmente com arrays bidimensionais ou até tridimensionais e
ai por diante.

Se voce não é bom em algo, treine bastante porque é importante voce procurar a melhor solução para o seu problema.

Abração

colored

essa do for encadeado eu inventei agora…

tem for assim…
pensei for tb deve ser kkkkkkkkkk…

ai que esta o X que vc acerto… mexer com array sussa… agora qdo é matriz eu nem tento =P…
pq vai sair merda…kkk

M
import javax.swing.JOptionPane;

public class Somando {

	public static void main(String[] args) {
		int y = 0, x = 0,soma = 0,soma1 = 0, j = 1;
		x = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Tamanho da Array 1"));
		y = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Tamanho da Array 2"));
		int array1 [] = new int[x];
		int array2 [] = new int[y];
		for(int i = 0; i < x; i++){
			array1[i] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o " +j+" Elemento da Array 1"));
			soma += array1[i];
			j++;
		}
		j = 1;
		for(int i = 0; i< y; i++){
			array2[i] = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o " +j+ " Elemento da Array 2"));
			soma1 += array2[i];	
			j++;
		}
		int total = soma + soma1;
		System.out.println(total);
	}
}

pra mostrar as posicoes dos elementos que estao sendo adicionados. 8)

Como diria um professor meu: "Perfumaria... isso é só perfumaria.."..kkkkkkkk

Criado 23 de abril de 2008
Ultima resposta 23 de abr. de 2008
Respostas 23
Participantes 5