Linguagens de Programação - Atividade 09

Leia com atenção as instruções abaixo.

Formato da Entrega:

Valor: 1,5 pontos na 2ª Nota.

Data da Entrega Limite: 01/10/2020

Questão 01 - 1,5 Pontos

Nesta questão vamos exercitar as estruturas, uniões e enumerações na linguagem C. Você deve criar os tipos de dados para permitir representar um estudante, incluindo seu nome, disciplina, curso, avaliação e situação de consolidação. Para tal defina, no arquivo alunos.c, os seguintes tipos:

Após definição dos tipos, defina uma função chamada comparaEstudante que retorna verdadeiro caso dois estudantes sejam iguais, falso caso contrário. Para testar se seu programa está correto, a função main abaixo:

int main(int argc, char *argv[]) {
    Estudante a = { .nome = "João Marcelo", 
                    .disciplina = Paralela, 
                    .curso = CC , 
                    .avaliacao.media = 7.0 , 
                    .consolidado = SIM };
    Estudante b = { .nome = "João Marcelo", 
                    .disciplina = Paralela, 
                    .curso = CC , 
                    .avaliacao.notas = {7.0, 8.0, 6.0} , 
                    .consolidado = NAO };	
                            
    printf("%s %d %d %.2f %d\n", a.nome, 
                                 a.disciplina, 
                                 a.curso, 
                                 a.avaliacao.media, 
                                 a.consolidado);
    printf("%s %d %d %.2f %d\n", b.nome, 
                                 b.disciplina, 
                                 b.curso, 
                                 (b.avaliacao.notas[0] + 
                                 b.avaliacao.notas[1] + 
                                 b.avaliacao.notas[2])/3.0, 
                                 b.consolidado) ;
                                
    if (comparaEstudante(a, b)) {
        printf("a e b iguais.\n");
    } else {
        printf("a e b diferentes.\n");
    }
                                
    Estudante c = { .nome = "Maria do Carmo", 
                    .disciplina = Compiladores, 
                    .curso = ES , 
                    .avaliacao.media = 8.0 , 
                    .consolidado = SIM };
    Estudante d = { .nome = "Francisco de Assis", 
                    .disciplina = LIP, 
                    .curso = EC , 
                    .avaliacao.notas = {2.0, 2.0, 6.0} , 
                    .consolidado = NAO };	
                            
    printf("%s %d %d %.2f %d\n", c.nome, 
                                 c.disciplina, 
                                 c.curso, 
                                 c.avaliacao.media, 
                                 c.consolidado);
    printf("%s %d %d %.2f %d\n", d.nome, 
                                 d.disciplina, 
                                 d.curso, 
                                 (d.avaliacao.notas[0] + 
                                 d.avaliacao.notas[1] + 
                                 d.avaliacao.notas[2])/3.0, 
                                 d.consolidado) ;
                            
    if (comparaEstudante(c, d)) {
        printf("c e d iguais.\n");
    } else {
        printf("c e d diferentes.\n");
    }
    return 0;
}
                        

Deve retornar a seguinte saída:

João Marcelo 2 0 7.00 1
João Marcelo 2 0 7.00 0
a e b iguais.
Maria do Carmo 1 1 8.00 1
Francisco de Assis 0 2 3.33 0
c e d diferentes.