Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- /* 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:
- int comparaData (Data *d1, Data *d2);
- 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.
- João Magalhães
- 19-5-2015 */
- typedef struct
- {
- int ano, mes, dia;
- }Data;
- Data leData()
- {
- Data z;
- printf("Introduza o ano\n");
- scanf("%d", &(z.ano));
- printf("Introduza o mês\n");
- scanf("%d", &(z.mes));
- printf("Introduza o dia\n");
- scanf("%d", &(z.dia));
- return z;
- }
- void mostraData (Data z)
- {
- printf("A data que ocorre primeiro é %d-%d-%d\n", z.ano, z.mes, z.dia);
- }
- int ComparaData (Data *d1, Data *d2)
- {
- 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 ) )
- return -1;
- 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 ) )
- return 1;
- else if( (*d1).ano==(*d2).ano && (*d1).mes==(*d2).mes && (*d1).dia==(*d2).dia )
- return 0;
- }
- int main()
- {
- Data x, y;
- x=leData();
- y=leData();
- printf("%d\n", ComparaData(&x, &y));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement