mraposo Posted October 27, 2009 at 08:32 AM Report Share #293508 Posted October 27, 2009 at 08:32 AM 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 More sharing options...
Baderous Posted October 27, 2009 at 02:26 PM Report Share #293562 Posted October 27, 2009 at 02:26 PM O algoritmo para determinação se o ano é bissexto não se resume a verificar essa condição: http://forum.zwame.pt/showpost.php?p=2384875&postcount=12 http://forum.zwame.pt/showpost.php?p=2275930&postcount=4 Link to comment Share on other sites More sharing options...
mraposo Posted October 27, 2009 at 02:38 PM Author Report Share #293565 Posted October 27, 2009 at 02:38 PM 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 Link to comment Share on other sites More sharing options...
edsousa Posted October 27, 2009 at 03:47 PM Report Share #293575 Posted October 27, 2009 at 03:47 PM 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 More sharing options...
mraposo Posted October 27, 2009 at 04:18 PM Author Report Share #293586 Posted October 27, 2009 at 04:18 PM Obrigado, já entendi o meu erro. Já consegui resolver o "problema". Mais uma vez muito obrigado pela vossa atenção e principalmente ajuda. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now