duvida em java

ungah

Suspenso
boas a todos. neste momento estou a fazer um programa que lê um certo numeros de valores entre -1000 e 1000 em que para terminar a escrita da sequencia o valor introduzido tem de ser o dobro do anterior e no fim escreve o nº de valores lidos, a soma dos valores lidos e quais os numeros que fizeram terminar a escrita. eu ja fiz tudo excepto a parte dos numeros k fizeram terminar a escrita. gostava que me ajudassem a resolver esta parte.
tenho o seguinte:

Código:
int valor, valorant=0, cont=0, soma=0;
boolean igual =false;
 
do
{
valor=readInt("Insira valor: ");
if (valor>=-1000 && valor <=1000 && valor!=0)
{
cont ++;
soma = soma + valor;
}
if (valor==(2*valorant))
igual =true;
}
while (igual==false);
 
println();
println("Escreveu "+cont+" numeros no intervalo [-1000;1000].");
println("A soma de todos os numeros escritos entre [-1000;1000] é: "+soma);
println("Os valores que forçaram a paragem da escrita foram o "+valorant+" e o "+valor+".");
 
Última edição pelo moderador:
Podes ter duas variáveis para guardar o valor actual e o anterior. Depois é so imprimir estas.
Outra solução é guardares todos os valores num arraylist de inteiros, quando terminar imprimes o ultimo e penúltimo

EDIT: Reparei agora que já lá tens as variáveis valor e valorant e imprimes no fim.O que precisas mais?
EDIT2: Confesso que nem tinha olhado bem para o teu codigo. Tinhas vários erros.

Aqui tens uma solução possível:
Código:
import java.util.Scanner;


public class Testa {

    public static void main (String[] args) {

        Scanner leitor = new Scanner (System.in);
        int valor=0, valorant=0, cont=0, soma=0;
        boolean igual =false;        

        do
        {
            valorant = valor;
            System.out.println("Insira valor: ");
            valor=leitor.nextInt();
            if (valor>=-1000 && valor <=1000 && valor!=0)
            {
                cont ++;
                soma = soma + valor;
            }
            if (valor==(2*valorant))
                igual =true;
        } while (igual==false);

        
        System.out.println("\nEscreveu "+cont+" numeros no intervalo [-1000;1000].");
        System.out.println("A soma de todos os numeros escritos entre [-1000;1000] é: "+soma);
        System.out.println("Os valores que forçaram a paragem da escrita foram o "+valorant+" e o "+valor+".");
    }
}
Não deveria estar a colocar a solução final aqui, porque é má politica. Normalmente as pessoas tendem a copiar e nem sequer olhar para o q estão a escrever. Testa e compreende o código, só assim consegues aprender :P
 
Última edição:
Back
Topo