/*Construya un programa que dado un conjunto de notas de estudiante, obtenga la media aritmética y luego muestre cuantas notas están por encima de ella */
#include "stdio.h"
#include "stdlib.h"
float media(float *A, int N);
int sobresalientes (float *A, int N, float media);
void leerNotas(float *A, int N);
int main (void){
float *notas=NULL,med; //notas es el arreglo al que se
asignará memoria dinámicamente
int N, cont; //N es la cantidad de notas, cont: para el número
de alumnos sobresalientes
printf("¿Cuántas notas van a ser ingresadas?\n N= ");
scanf("%d",&N);
notas=(float *)malloc(N*sizeof(float));//asignación dinámica
mediante malloc!
if (notas==NULL){
printf("No se pudo asignar memoria \n");
return 0;
}
leerNotas(notas, N);
med=media(notas,N);
printf("La media aritmética es: %.2f \n", med);
cont=sobresalientes(notas,N,med);
printf("Número de alumnos por encima de la media: %d\n",
cont);
free(notas);
return 0;
}
void leerNotas(float *A, int N){
int i;
float nota;
for(i=0;i<N;i++){
do{
printf("Nota[%d]: ",i+1);
scanf("%f",¬a);
if(nota<0.0||nota>10.0)
printf("Sólo se aceptan notas entre 0 y 10...\n");
A[i]=nota;
}while(nota<0.0 || nota>10.0);
}
}
int sobresalientes (float *A, int N, float media){
int i,cont=0;
for(i=0;i<N;i++){
if(A[i]>=media) cont++;
}
return cont;
}
float media(float *A, int N){
float suma=0,mediaAr;
int i;
for(i=0;i<N;i++){
suma=suma+A[i];
}
mediaAr=suma/N;
return mediaAr;
}
No hay comentarios:
Publicar un comentario