Ir para conteúdo
Fórum Script Brasil
  • 0

Exercício


infomania

Pergunta

Pessoal, fiz este exercício na forma de algorítmo e na linguagem C, mas acho que está faltando alguma coisa. Podem me ajudar?

Todos os anos que são múltiplos de 400, ou são múltiplos de 4 e não são múltiplos de 100, são

anos bissextos. Por exemplo, como 1600 é múltiplo de 400, o ano 1600 é bissexto. Similarmente,

já que 1988 é múltiplo de 4 e não é múltiplo de 100, o ano 1988 também é bissexto. Usando esta

informação, escreva um algoritmo que receba o ano como entrada de dados, determine se o

ano é bissexto, e dê uma mensagem apropriada dizendo se o ano digitado é bissexto ou não.

Em algorítmo

Algoritmo ano_bissexto

ANO: inteiro;

inicio
ler (ANO);
se ANO/4= 0
escrever ("O ano é bissexto");
senao
escrever ("O ano não é bissexto");
fim-se;
fim
Em C
#include <stdio.h>
#include <stdlib.h>
main()
{
int ANO
printf("Digite o ano:");
scanf("%d", ANO);
if (ANO/4 = 0){
printf ("O ano é bissexto");
else
printf("O ano não é bissexto");
}
system("pause");
}

Editado por quintelab
Adicionar tag's e remover caixa alta em parte do tópico e do título (Jonathan)
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

acho que sua lógica possa está errada, já que você está apenas dividindo por 4, dividir novamente por 100 ou dividir diretamente por 400, assim você pegaria com exatidão. um exemplo é.

2002 / 4 = 500.5 --> Não é múltiplo de 4 porem é bissexto

2002 / 100 = 20.02

2002 / 400 = 0 --> Aqui valida de forma mais correta

Acho que valeria trocar o 4 por 400

outra coisa no seu if

você tem que fechar e abrir a chave para o else também

if (condição) {

instrução

}else{

instrução

}

Link para o comentário
Compartilhar em outros sites

  • 0

A lógica no código está errada.

Você está dividindo ANO por 4 e dizendo que o resultado tem que 0.

Um número dividido por 4 nunca vai dar zero, só se esse número for zero.

Pra saber se um número é múltiplo de 4 ou de 400, você tem que pegar o resto da divisão (%).

E seu código só tem uma condição, e você mesmo está dizendo que existem 3 condições.

Eu faria o algoritmo da seguinte forma:

- Verifica se é múltiplo de 4 ou de 400. Como fazer: Pegue o resto da divisão. Se for 0 é múltiplo.

Se for múltiplo de 4 ou de 400, faça também:

- Verifica se não é múltiplo de 100. Como fazer: da mesma forma.

Em código seria algo do tipo:

if (ano%4 == 0 || ano%400 == 0)
{
   if (ano%100 != 0)
   {
      //É bissexto.
   }
   else
   {
      //Não é bissexto.
   }
}
else
{
   //Não é bissexto.
}

Editado por Tozi
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...