Escreva um programa em linguagem C que solicita ao usuário a
quantidade de alunos de uma turma e aloca um vetor de notas
(números reais). Depois de ler as notas, imprime a média aritmética.
Obs: não deve ocorrer desperdício de memória; e após ser utilizada
a memória deve ser devolvida.
Agradeço a colaboração! <3
Soluções para a tarefa
Espero ter ajudado :)
Algoritmo:
#include <stdio.h>
#include <stdlib.h>
int main() {
// Variaveis
int num, i;
float *notas, soma;
// Recebe a quantidade de alunos
printf("Informe a quantidade de alunos: ");
scanf("%d", &num);
// Aloca o vetor
notas = (float *) malloc(sizeof(float) * num+1);
// Lê as notas
for(i=0; i<num; i++){
printf("Informe a nota do aluno [%d]: ", i+1);
scanf("%f", ¬as[i]);
}
// Calcula a soma
soma = 0;
for(i=0; i<num; i++){
soma = soma + notas[i];
}
// Librera a memória do vetor
free(notas);
// Mostra a media
printf("A média desses alunos é %.2f!\n", soma / num);
return 0;
}
O programa na linguagem de programação C que resolve o problema de notas e alocação apresentado acima é:
#include <stdio.h>
#include <stdlib.h>
int main() {
int qtdAlunos, i;
float *notas, soma, media;
printf("Digite a quantidade de alunos: "); scanf("%d", &qtdAlunos);
notas = (float *) malloc(sizeof(float) * qtdAlunos+1);
for(i=0; i<qtdAlunos; i++){
printf("Informe a nota do aluno (%d): ", i+1);
scanf("%f", ¬as[i]);
}
soma = 0;
for(i=0; i<qtdAlunos; i++){
soma = soma + notas[i];
}
free(notas);
media = soma/qtdAlunos;
printf("\nA média dos alunos é %.2f!\n", media);
return 0;
}
Mas por que esse programa resolve a questão apresentada?
Esse programa na linguagem C recebe a quantidade de alunos de uma turma, lê a nota de cada um, soma as notas e divide pela quantidade de alunos citada acima conseguindo assim a média e em seguida libera o espaço de memória previamente alocado.
Saiba mais sobre programação em C aqui: https://brainly.com.br/tarefa/28035640
#SPJ2