Jump to content

Algoritmo em C


usermanero
 Share

Recommended Posts

Olá, gostaria de saber como esse algoritmo ficaria na linguagem C. Ele é um algortimo pra calcular o tempo de vida de uma pessoa em anos e dias a partir da data atual.

algoritmo "Tempo de vida"

var
mes, dia, ano, finalano, finaldia, usumes, usuano, usudia, cnt, cont : Inteiro

vet: vetor [1..12] de inteiro

inicio

vet[1] <- 31
vet[2] <- 59
vet[3] <- 90
vet[4] <- 120
vet[5] <- 151
vet[6] <- 181
vet[7] <- 212
vet[8] <- 243
vet[9] <- 273
vet[10] <- 304
vet[11] <- 334
vet[12] <- 365
cont <- 1
cnt <- 1

escreval ("Digite dia, mes e ano de nascimento")
leia (usudia, usumes, usuano)
escreval ("Digite dia, mes e ano atual")
leia (dia, mes, ano)

se (usumes <= mes) entao
finalano <- ano - usuano
fimse
se (usumes > mes) entao
finalano <- ano - usuano - 1
fimse

enquanto (usumes = cnt) faca
     se (mes = cont) entao
          se (usumes = mes) e (usudia <= dia) entao
                   finaldia <- dia - usudia
                   usumes <- 0
                   cnt <- cnt + 1
          senao
                   finaldia <- vet[mes-1] - usudia + dia
                   usumes <- 0
                   cnt <- cnt + 1
fimse
fimse
cont <- cont + 1
fimenquanto


escreval (finalano, " anos e ", finaldia, " dias")

fimalgoritmo
Edited by usermanero
Tags code
Link to comment
Share on other sites

Seria mais ou menos assim?

#include <stdio.h>
int main(void)
{

int dia, ano, finalano, finaldia, finalmes, usumes, usuano, usudia;
int vet[11] = {31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365};
int cont = 1;
int cnt = 1;

printf ("Digite dia, mes e ano de nascimento")
scanf (usudia, usumes, usuano)
printf ("Digite dia, mes e ano atual")
scanf (dia, mes, ano)

if (usumes <= mes)
{
finalano = ano - usuano
}
if (usumes > mes)
{
finalano = ano - usuano - 1
}


while (usumes == cnt)
{
if(mes == cont)
{
if (usumes == mes) && (usudia <= dia)
{
finaldia = dia - usudia
usumes = 0
cnt = cnt + 1
}
else
{
finaldia = vet[mes-1] - usudia + dia
usumes = 0
cnt = cnt + 1
}
}
cont = cont + 1
}


printf(finalano, " anos e ", finaldia, " dias");

}
Edited by thoga31
GeSHi
Link to comment
Share on other sites

no que toca à conversão semântica do algoritmo ... até parece ok (se bem que isso se fazia muito mais facilmente ... mas isso é outra conversa), agora se o algoritmo está correcto, não faço ideia porque não vou estar a ler código com essa (não) indentação

agora, no que toca à sintaxe, ui ... isso está cheio de erros.

- não vejo um único ponto e vírgula ( ; )

- os scanf's estão completamente errados

- os printf's é do mesmo ...

- não existe o valor de retorno da função main

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
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.