Código C++:
El problema es con el promedio da valores erroneos y x ello no se toman las que son mayores y menores al promedio.Ver original
#include <stdio.h> #include <stdlib.h> #define p printf #define s scanf void reordenar(int n, int x[]){ x[i]=temp;}}} void reordenarmenor(int n, int x[]){ x[i]=temp;}}} main(){ int x[100], aprobadas[100]={0}; int mayorp[50]={0}; int menorp[50]={0}; int i,suma, n; int mayor=300, menor=-300; double promedio; p("Cuantos Alumnos hay en la seccion: \n"); s("%d", &n); for(i=0 ; i<n ; i++){ p("Introduzca Nota n%d \n", i+1); s("%d", &x[i]); suma+=x[i];} reordenar(n,x); promedio=suma/n; for(i=0 ; i<n ; i++){ if((x[i]>=50)|| (x[i]>=10)){ aprobadas[i]=x[i];} if(x[i]<mayor){ mayor=x[i];} if(x[i]>menor){ menor=x[i];} if(x[i] < promedio){ menorp[i]=x[i];} if(x[i] > promedio){ mayorp[i]=x[i];}} p("\nEl promedio es de: %.2f\n\n", promedio); p("---Notas de mayor a menor---\n"); for(i=0 ; i<n ; i++){ p("%d\n", x[i]);} p("\nLa mayor nota fue %d\nLa menor nota fue %d\n", menor, mayor); reordenar(n,aprobadas); reordenarmenor(n,menorp); reordenarmenor(n,mayorp); p("---Lista de aprobados---\n"); for(i=0 ; i<n ; i++){ p("%d\n", aprobadas[i]);} p("\n---Mayores al promedio---\n"); for(i=0 ; i<n ; i++){ p("%d\n", mayorp[i]);} p("\n---Menores al promedio---\n"); for(i=0 ; i<n ; i++){ p("%d\n", menorp[i]);} s("%d"); }
Saludos!