1. Faça um programa para corrigir uma prova com 10 questões de múltipla escolha ( a, b, c, d ou e ), em uma turma com 3 alunos. Cada questão vale 1 ponto. Leia o gabarito, e para cada aluno leia sua matricula (número inteiro) e suas respostas. Calcule e escreva: Para cada aluno, escreva sua matrícula, suas respostas, e sua nota. O percentual de aprovação, assumindo média 7.0.

Passo 1

O enunciado pede um programa para corrigir uma prova de 10 questões objetivas (valendo 1 ponto cada), lendo o gabarito e as respostas de 3 alunos (cada um com matrícula inteira e suas 10 respostas), calculando a nota de cada aluno e, ao final, o percentual de aprovação considerando média mínima 7.0.
Para armazenar o gabarito e as respostas dos alunos, usamos vetores de caracteres (arrays de char) de tamanho 10. Vamos também armazenar em vetor as matrículas e as notas dos alunos.

Passo 2

Começamos lendo a string do gabarito (10 caracteres). Em seguida, para cada aluno (em um laço de 0 a 2): lêmos a matrícula (int) e a string de 10 respostas. Inicializamos sua nota em zero e, para cada posição de 0 a 9, comparamos o caractere da resposta com o caractere correspondente do gabarito. Se forem iguais, incrementamos a nota em 1.
Enquanto corrigimos, mantemos um contador de alunos aprovados (nota >= 7). Depois de processar os 3 alunos, o percentual de aprovação é calculado como (número de aprovados / total de alunos) × 100.

Passo 3

Por fim, iteramos novamente sobre os dados armazenados dos alunos para imprimir, para cada um, sua matrícula, suas respostas e sua nota. Depois descretamos o percentual de aprovação formatado em duas casas decimais.
Esta estrutura (uso de arrays, laços e contador) pode ser aplicada sempre que tivermos prova objetiva de tamanho fixo e turma de tamanho fixo ou variável.

Passo 4

Agora, segue o código em C que implementa essa lógica.

Resposta

#include <stdio.h>
int main() {
char gabarito[11]; // 10 questões + ‘\0’
char respostas[3][11]; // respostas de cada um
int matriculas[3];
int notas[3];
int aprovados = 0;
// Leitura do gabarito
printf("Digite o gabarito (10 letras de a-e):\n");
scanf("%10s", gabarito);

// Leitura das respostas e cálculo de nota
for (int i = 0; i < 3; i++) {
    printf("\nAluno %d\n", i+1);
    printf("Matrícula: ");
    scanf("%d", &matriculas[i]);
    printf("Respostas (10 letras): ");
    scanf("%10s", respostas[i]);
    
    notas[i] = 0;
    for (int q = 0; q < 10; q++) {
        if (respostas[i][q] == gabarito[q]) {
            notas[i]++;
        }
    }
    if (notas[i] >= 7) {
        aprovados++;
    }
}

// Impressão dos resultados individuais
printf("\n=== Resultado da Turma ===\n");
for (int i = 0; i < 3; i++) {
    printf("Matrícula: %d\n", matriculas[i]);
    printf("Respostas: %s\n", respostas[i]);
    printf("Nota: %d\n\n", notas[i]);
}

// Cálculo e impressão do percentual de aprovação
double percentual = (aprovados / 3.0) * 100.0;
printf("Percentual de aprovação: %.2f%%\n", percentual);

return 0;
}

Exercícios relacionados