Faça um programa que realize a leitura dos seguintes dados relativos a um conjunto de alunos: Matricula, Nome, Código da Disciplina, Nota1 e Nota2. Considere uma turma de até 10 alunos. Após ler todos os dados digitados, e depois de armazená-los em um vetor de estrutura, exibir na tela a listagem final dos alunos com as suas respectivas médias finais (use uma média ponderada: Nota1 com peso=1.0 e Nota2 com peso=2.0).

Passo 1

O enunciado pede um programa que leia os dados de até 10 alunos (matrícula, nome, código da disciplina, nota1 e nota2), armazene tudo num vetor de estruturas e, ao final, exiba para cada aluno a média ponderada, onde nota1 tem peso 1 e nota2 tem peso 2.

Passo 2

Definimos uma estrutura em C chamada Aluno com os campos: matrícula (int), nome (string), código da disciplina (int) e as duas notas (float).
Criamos um vetor estático de até 10 elementos do tipo Aluno e uma variável inteira n para saber quantos alunos serão informados (limitado a 10).
Fazemos um laço de leitura de 0 até n–1 para pedir via scanf os valores de cada campo da estrutura. Para ler o nome, usamos scanf com o formato " %[^
]" para capturar espaços.

Passo 3

Depois de ler todos os alunos, usamos outro laço para calcular a média ponderada de cada um: media = (nota11.0 + nota22.0) / 3.0.
Ainda dentro do laço de exibição, fazemos um printf formatado que mostra matrícula, nome, código da disciplina, nota1, nota2 e média com duas casas decimais.

Resposta

#include <stdio.h>
#define MAX 10
typedef struct {
int matricula;
char nome[50];
int codDisciplina;
float nota1, nota2;
} Aluno;
int main() {
Aluno turma[MAX];
int n, i;
printf(“Quantos alunos (max %d)? “, MAX);
scanf(”%d”, &n);
if (n > MAX) n = MAX;
for (i = 0; i < n; i++) {
    printf("\nAluno %d:\n", i + 1);
    printf("Matricula: ");
    scanf("%d", &turma[i].matricula);
    printf("Nome: ");
    scanf(" %[^
]", turma[i].nome);
printf(“Codigo da Disciplina: “);
scanf(”%d”, &turma[i].codDisciplina);
printf(“Nota1: “);
scanf(”%f”, &turma[i].nota1);
printf(“Nota2: “);
scanf(”%f”, &turma[i].nota2);
}
printf("\nListagem final dos alunos e medias:\n");
printf("Matricula\tNome\tDisciplina\tNota1\tNota2\tMedia\n");
for (i = 0; i < n; i++) {
    float media = (turma[i].nota1 + 2.0f * turma[i].nota2) / 3.0f;
    printf("%d\t\t%s\t%d\t\t%.2f\t%.2f\t%.2f\n",
           turma[i].matricula,
           turma[i].nome,
           turma[i].codDisciplina,
           turma[i].nota1,
           turma[i].nota2,
           media);
}

return 0;
}

Exercícios relacionados