Data de nacimento e signos
Publicado por Marcelo Vicente Pesente Fachinelli 17/12/2008
[ Hits: 11.005 ]
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; }
Parte 1 - Sessão de estudo sobre MATRIZES
Determinar maior número com função
Algoritimo pra Multiplicação de Matrizes
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Linux não é para todo mundo (0)
Preciso de ajuda para mudar do ubuntu para fedora (6)
Linux Mint nao reconhece segundo monitor. (0)
É possível baixar o dicionário pt-br para /usr/share/dict no Linux Min... (1)