Advertisement
WhiteGazelle

folha8ex8

May 20th, 2015
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.61 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. /* Escreva uma função que receba duas datas e devolva -1 se a primeira for menor que a segunda, 1 se a primeira for maior que a segunda e zero caso sejam iguais. Note que é só reaproveitar o código que escreveu no exercício 1. Use o seguinte protótipo:
  4.  
  5. int comparaData (Data *d1, Data *d2);
  6.  
  7. Note que a função assume que definiu o tipo Data usando o typedef. E a função está a receber apontadores para as estruturas que contêm as datas. Agora reescreva o exercício 1 de forma a usar esta função.
  8.  
  9. João Magalhães
  10. 19-5-2015 */
  11.  
  12. typedef struct
  13. {
  14.     int ano, mes, dia;
  15. }Data;
  16.  
  17. Data leData()
  18. {
  19.     Data z;
  20.     printf("Introduza o ano\n");
  21.     scanf("%d", &(z.ano));
  22.     printf("Introduza o mês\n");
  23.     scanf("%d", &(z.mes));
  24.     printf("Introduza o dia\n");
  25.     scanf("%d", &(z.dia));
  26.  
  27.     return z;
  28. }
  29.  
  30. void mostraData (Data z)
  31. {
  32.     printf("A data que ocorre primeiro é %d-%d-%d\n", z.ano, z.mes, z.dia);
  33. }
  34.  
  35.  
  36. int ComparaData (Data *d1, Data *d2)
  37. {
  38.     if( (*d1).ano<(*d2).ano ||( (*d1).ano==(*d2).ano && (*d1).mes<(*d2).mes ) || ( (*d1).ano==(*d2).ano && (*d1).mes==(*d2).mes && (*d1).dia<(*d2).dia ) )
  39.         return -1;
  40.     else if( (*d1).ano>(*d2).ano ||( (*d1).ano==(*d2).ano && (*d1).mes>(*d2).mes ) || ( (*d1).ano==(*d2).ano && (*d1).mes==(*d2).mes && (*d1).dia>(*d2).dia ) )
  41.         return 1;
  42.     else if( (*d1).ano==(*d2).ano && (*d1).mes==(*d2).mes && (*d1).dia==(*d2).dia )
  43.         return 0;
  44. }
  45.  
  46.  
  47. int main()
  48. {
  49.     Data x, y;
  50.     x=leData();
  51.     y=leData();
  52.     printf("%d\n", ComparaData(&x, &y));
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement