Saludos, Tengo el siguiente programa, el cual pide una lista de calificaciones, las ordena, y luego muestra la lista, el promedio, las que aprobaron y las mayores/menores el promedio
Código C++:
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");
}
El problema es con el promedio da valores erroneos y x ello no se toman las que son mayores y menores al promedio.
Saludos!