Tenho que resolver o seguinte exercicio em C:
#include<stdio.h>
#include<string.h>
#define TAM 2
typedef struct{
int hora;
int minutos;
int segundos;
} Horario;
typedef struct{
int dia;
int mes;
int ano;
} Data;
typedef struct{
char descricao[50];
Horario horario_compromisso;
Data data_compromisso;
} Compromisso;
void ler(Compromisso a); //Funcao de leitura dos compromissos
void imprime(Compromisso a,int cont); //Funcao que imprime os compromissos
int main(){
Compromisso vet[TAM];
int m,a,cont_mes=0,cont_ano=0;
for(int i=0;i<TAM;i++){
printf("Digite os dados do compromisso %d\n",(i+1));
ler(vet[i]); //Chamando a funcao de leitura
}
//O erro esta dentro deste while e possivelmente dentro da funcao imprime
while(m!=0){
printf("\nDigite o mes e o ano para visualizar os compromissos totais do ano e mes digitado(Digite 0 para parar):");
scanf("%d%d",&m,&a);
if(m==vet.data_compromisso.mes){
cont_mes++;
printf("\nCompromissos do mes digitado:");
imprime(vet,cont_mes);
}else if(a==vet.data_compromisso.ano){
cont_ano++;
printf("\nCompromissos do ano digitado:");
imprime(vet,cont_ano);
}else
printf("\nNenhum compromisso no mes e ano digitado");
}
return 0;
}
void ler(Compromisso a){
//Lendo os dados dos compromissos
printf("\nDescreva o seu compromisso:");
fflush(stdin);
gets(a.descricao);
printf("\nSobre o horario do compromisso");
printf("\nHora:");
scanf("%d",&a.horario_compromisso.hora);
printf("\nMinuto:");
scanf("%d",&a.horario_compromisso.minutos);
printf("\nSegundo:");
scanf("%d",&a.horario_compromisso.segundos);
printf("\nSobre a data do compromisso");
printf("\nDia:\n");
scanf("%d",&a.data_compromisso.dia);
printf("Mes:\n");
scanf("%d",&a.data_compromisso.mes);
printf("Ano:");
scanf("%d",&a.data_compromisso.ano);
}
void imprime(Compromisso a,int cont){
int i;
//Função printando os compromissos do ano e mes digitado
for(i=0;i<cont;i++){
printf("\nCompromisso %d",(i+1));
printf("O compromisso %s, será às %d horas %d minutos e %d segundos\nDia %d do mes %d e ano %d",a.descricao,a.horario_compromisso.hora,a.horario_compromisso.minutos,a.horario_compromisso.segundos,a.data_compromisso.dia,a.data_compromisso.mes,a.data_compromisso.ano);
}
}
Caso for um erro simples, considerem que sou iniciante na programação ainda, obrigado a quem ajudar