Jump to content

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


mraposo
 Share

Recommended Posts

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.

Link to comment
Share on other 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
}
Tharis Fan ClubMay Tharis bless you
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.