Ir ao conteúdo
  • Cadastre-se

lucas frois

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

1
  1. Eu estou fazendo um exercicio em C, em que tenho que imprimir dados de duas pessoas, e comparar qual delas é mais velha, porém na hora de comparar e imprimir o resultado, esta retornando um monte de numeros nada a ver. Como posso resolver isso ? Segue o codigo! E quando eu mudo no printf o %d, para %c para mostrar o nome de quem é mais velho, ele mostra só a primeira letra, como faço para resolver isso tambem ? #include <stdlib.h> #include <stdio.h> #include <string.h> typedef struct{//Data do cliente int dia; int mes; int ano; }Data; typedef struct{//Nome e data do cliente char nome[50]; Data nasc; }dados_cliente; void leia_data(Data *n){//Leitor de data Data k; printf("\nDia: "); scanf("%d", &k.dia); printf("\nMes: "); scanf("%d", &k.mes); printf("\nAno: "); scanf("%d", &k.ano); n->dia=k.dia; //pesquisar outra forma de fazer isso n->mes=k.mes; n->ano=k.ano; /* Outra forma de fazer a passagem com parâmetro (*n).dia=k.dia (*n).mes=k.mes (*n).ano=k.ano */ } void escreva(dados_cliente x){//Escrita dados cliente printf("\nOs dados do cliente sao:\n\n"); printf("Nome: %s\n",x.nome); printf("Data: %d/%d/%d\n\n",x.nasc.dia,x.nasc.mes,x.nasc.ano); } dados_cliente mais_velho(dados_cliente a, dados_cliente b){//Comparador qual cliente é mais velho if (a.nasc.ano < b.nasc.ano) return a; if (a.nasc.ano == b.nasc.ano){ if (a.nasc.mes < b.nasc.mes) return a; if (a.nasc.mes > b.nasc.mes) return b; if (a.nasc.mes == b.nasc.mes){ if (a.nasc.dia < b.nasc.dia) return a; if (a.nasc.dia > b.nasc.dia) return b; } } } int main() { char n1[50], n2[50]; dados_cliente p1, p2; Data nascimento; printf("Digite os dados do primeiro cliente:\n\n"); printf("Nome: "); gets(n1); leia_data(&nascimento); strcpy(p1.nome,n1); p1.nasc=nascimento; escreva(p1); getchar(); printf("Digite os dados do segundo cliente:\n\n"); printf("Nome: "); gets(n2); leia_data(&nascimento); strcpy(p2.nome,n2); p2.nasc=nascimento; escreva(p2); getchar(); printf("O cliente mais velho e: %d", mais_velho(p1,p2)); return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!