Data de nacimento e signos
Publicado por Marcelo Vicente Pesente Fachinelli 17/12/2008
[ Hits: 11.280 ]
Homepage: www.azanonatec.com.br
Esse é um programa que meu colega e eu fizemos para aula de lógica do nosso curso técnico. O programa consiste na entrada do nome, da data de nascimento e do sexo da pessoa.
A partir dessas informações o programa calcula quantos anos a pessoa tem e o signo da pessoa. Esse foi um dos meus primeiros programas em C, espero que gostem.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void exercicio3()
{
/*Bloco de declaração de variáveis*/
char sexo[1],signo[12],nome[30];
char dateAux5[3];
char dateAux6[2];
int dia,mes,ano,anoAux,bi,ponteiro,diaMes,diaAux,i;
char* comparar[12] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
char* date2 = __DATE__;
strncpy(dateAux5,date2,3);
strncpy(dateAux6,date2+4,6);
ponteiro = 0;
/*Inicio do programa*/
printf("Digite seu nome:");
scanf("%s",&nome);
dia:
system("clear");
printf("Digite o dia que nasceu:");
scanf("%d",&dia);
if(dia<1 || dia>31)
{
printf("O dia deve estar entre 1 e 31!\n");
system("PAUSE");
goto dia;
}
if(ponteiro == 1)
goto meses;
mes:
system("clear");
printf("Digite o mes que nasceu:");
scanf("%d",&mes);
if(mes<1 || mes>12)
{
printf("O mes deve estar entre 1 e 12!\n");
system("PAUSE");
goto mes;
}
ano:
system("clear");
printf("Digite o ano que ela nasceu:");
scanf("%d",&ano);
if(ano < 1900)
{
printf("O ano deve ser maior que 1900!\n");
system("PAUSE");
goto ano;
}
sexo:
printf("H)Homem\nM)Mulher\nSelecione seu sexo:");
scanf("%s",&sexo);
if(strcmp(sexo,"M")!=0 && strcmp(sexo,"H")!=0 && strcmp(sexo,"m")!=0 && strcmp(sexo,"h")!=0)
{
printf("Opcao invalida!\n");
system("PAUSE");
goto sexo;
}
system("clear");
meses:
if(mes == 1)
{
if(dia < 21)
strcpy(signo,"Capricornio");
else
strcpy(signo,"Aquario");
diaMes = 31;
}
else if(mes == 2)
{
if(ano%4 == 0)
bi = 29;
else
bi = 28;
if(dia > bi)
{
if(bi == 0);
printf("Ano bissexto!!!\n");
printf("O mes de fevereiro nao tem %d dias!\n",dia);
system("PAUSE");
ponteiro = 1;
goto dia;
}
else
{
if(dia<20)
strcpy(signo,"Aquario");
else
strcpy(signo,"Peixes");
}
diaMes = bi;
}
else if(mes == 3)
{
if(dia < 21)
strcpy(signo,"Peixes");
else
strcpy(signo,"Aries");
diaMes = 31;
}
else if(mes == 4)
{
if(dia>30)
{
printf("O mes de abril nao tem %d dias!\n",dia);
system("PAUSE");
ponteiro = 1;
goto mes;
}
else
{
if(dia < 21)
strcpy(signo,"Aries");
else
strcpy(signo,"Touro");
}
diaMes = 30;
}
else if(mes == 5)
{
if(dia < 21)
strcpy(signo,"Touro");
else
strcpy(signo,"Gemeos");
diaMes = 31;
}
else if(mes == 6)
{
if(dia>30)
{
printf("O mes de junho nao tem %d dias!\n",dia);
system("PAUSE");
ponteiro = 1;
goto mes;
}
else
{
if(dia < 21)
strcpy(signo,"Gemeos");
else
strcpy(signo,"Cancer");
}
diaMes = 30;
}
else if(mes == 7)
{
if(dia < 22)
strcpy(signo,"Cancer");
else
strcpy(signo,"Leao");
diaMes = 31;
}
else if(mes == 8)
{
if(dia < 23)
strcpy(signo,"Leao");
else
strcpy(signo,"Virgem");
diaMes = 31;
}
else if(mes == 9)
{
if(dia>30)
{
printf("O mes de setembro nao tem %d dias!\n",dia);
system("PAUSE");
ponteiro = 1;
goto mes;
}
else
{
if(dia < 23)
strcpy(signo,"Virgem");
else
strcpy(signo,"Libra");
}
diaMes = 30;
}
else if(mes == 10)
{
if(dia < 23)
strcpy(signo,"Libra");
else
strcpy(signo,"Escorpiao");
diaMes = 31;
}
else if(mes == 11)
{
if(dia>30)
{
printf("O mes de novembro nao tem %d dias!\n",dia);
system("PAUSE");
ponteiro = 1;
goto mes;
}
else
{
if(dia < 22)
strcpy(signo,"Escorpiao");
else
strcpy(signo,"Sagitario");
}
diaMes = 30;
}
else
{
if(dia < 23)
strcpy(signo,"Sagitario");
else
strcpy(signo,"Capricornio");
diaMes = 31;
}
anoAux = atoi(date2+7);
ano = anoAux - ano;
for(i=0; i < 11 ;i++)
{
if(strcmp(comparar[i],dateAux5)==0)
{
break;
}
}
if(i - mes < 0)
ano = ano -1;
else if(11 - mes == 0)
{
diaAux = atoi(dateAux6);
if(diaAux-dia < 0)
ano = ano -1;
}
if(strcmp(sexo,"H")==0 || strcmp(sexo,"h")==0)
printf("Sr. %s, seu signo eh %s e voce tem %d anos!\n",nome,signo,ano);
else
printf("Sra. %s, seu signo eh %s e voce tem %d anos!\n",nome,signo,ano);
system("PAUSE");
return;
}
gerenciador de historico de comandos
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
\Boot sem espaço em disco (Fedora KDE Plasma 42) (3)
Programa fora de escala na tela do pc (38)
Mint Xfce não mantém a conexão no wi-fi (2)









