• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

mraposo

Ajuda - Não sei onde esta o erro Programa anos Bisextos

5 mensagens neste tópico

Viva,

Antes de mais agradecer desde já a vossa atenção, comecei agora a estudar Java e a "tentar" programar.

O meu objectivo é fazer um programa que nos peça um ano, e ele depois indique se é ou no bisexto.

Considerando que um ano é bisexto se for divisivel por 4 com resto zero fiz as seguintes linhas, mas que tem um erro na linha int j=y%4; e não consigo entender porque.

public class bisexto
{
    
    public static void main(String[] args)
    {
        
        // cria Scanner para obter entrada a partir da janela de comando
        Scanner input = new Scanner( System.in );
        
        //Foram alteradas as variáveis de int para float para dar mais precisao ao calculo do ano.
        float resultado=0;
        // inicia variável
        // exibe mensagem para escolha
        System.out.println( " Deseja saber se um ano é bisexto, indique qual");
        
        // método converte String para Integer e armazena valor na variável "ano"
        float ano = Integer.parseInt(input.nextLine());
        
        // Variavel ano é igual ao scaner do teclado, ano é identificado como variavel y
        int y=ano;
        
        // calcular um ano bisexto dividir o ano por 4, mas o resto terá sempre que ser zero, todos os anos depois de 1900, variavel J é o ano a dividir por 4, cujo o resto terá sempre que ser zero
        for (int y = 1900; y >= 1900; y++)
        int j=y%4;
        
        if (j==0){
            // Imprimir no ecra o resultado, caso tenha resto zero é bisexto, caso não tenha não é
            System.out.println("Ano Bisexto: ");
        }
        else {
            System.out.println("Ano Nao Bisexto: ");
        }
    }

Obrigado pela vossa atenção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva, pois já entendi que nao, mas aqui o meu problema é mais em conseguir executar este java, ou seja que ele me peça o ano e me diga o resultado, depois corrijo a formula correcta para calcular o ano.

Mas realmente queria era a vossa ajuda em colocar este método a funcionar.

Obrigado.

Miguel Raposo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

primeiro de tudo, quando adicionars código, coloca-o dentro de tags

[ code=java]

[ /code]

dá para perceber muito melhor

também, dizer qual o erro é essencial para se dar uma resposta directa

float ano = Integer.parseInt(input.nextLine());

esta linha... ano podia já ser um int

depois tens o ciclo for, que além de ser um ciclo infinito, também está a destruir os dados que guardas em y

o código para o teu algoritmo seria parecido com isto:

Scanner input = new Scanner( System.in );
System.out.println( " Deseja saber se um ano é bisexto, indique qual");
int ano = Integer.parseInt(input.nextLine());

if( (ano%4==0 && ano%100!=0) || ano%400==0) {
       //ano bissexto
} else {
      //ano comum
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado, já entendi o meu erro. Já consegui resolver o "problema".

Mais uma vez muito obrigado pela vossa atenção e principalmente ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora