Dándole vueltas al ejercicio anterior...necesito vuestra ayuda para seguir

Iniciado por el gusanillo, 20 Febrero 2018, 09:31 AM

0 Miembros y 1 Visitante están viendo este tema.

el gusanillo

#include <iostream>
using namespace std;
#define notas 10

void leer notas (float [valores]);
void sup_inf_media (float [ALUMNOS],float,int&,int&);
void leer_notas (float notas[ALUMNOS]
{
...
}
float media (float notas[ALUMNOS]
{
...
}
void sup_inf_media (float notas[ALUMNOS],float media,int& sup_med,int&inf_media)
{
...
}
int main (void)
{
float notas[ALUMNOS],med;
int sup_med, inf_med;
leer_notas(notas);
med=media(notas);
sup_inf_media(notas,med,sup_med, inf_med);
cout<<"la media es"<<med<<"y hay"<<sup_med;
cout<<"alumnos con nota superior a la media y "<<inf_med;
cout<<"alumnos con nota inferior"<<endl;
system("PAUSE");
return 0;
}



el gusanillo

Buenas tardes, necesito saber si el ejercicio está bien desarrollado porque estoy estudiando por mi cuenta y estoy en la parte de arrays.
He escogido 10 ejercicios que he encontrado en internet pero no tienen la solución con lo que a base de leer manuales y hacer los problemas,voy aprendiendo.

Gracias por su atención y un saludo.

abelvaldez

El gusanillo,

Tu pregunta y el ejercicio es muy ambiguo, lo que nos podria ayudar es que pongas el ejercicio que quieres resolver y me refiero al texto o link, y poderle dar un poco mas de contexto a tu codigo.


el gusanillo

Buenos días, lo primero agradecer su ayuda y disculparme por no haber escrito el ejercicio.
ESCRIBID UN PROGRAMA QUE DADO UN ARRAY DE 10 ENTEROS(INTRODUCIDOS A MANO EN EL CÓDIGO),CALCULE LA MEDIA DE TODOS LOS VALORES E INDIQUE CUANTOS ESTAN POR ENCIMA DE LA MEDIA Y CUANTOS POR DEBAJO.

dijsktra

Es muy fácil. Aquí va esta solución, que pide en primer lugar el número de notas y después las notas.

Consejo: Pon el "asunto" algo más significativo de lo que quieres resolver para poder saber que buscas. Todos son ejercicios, todos necesitamos ayuda... Por ejemplo, en tu caso , sería una buena idea para distinguirlo del resto.

Asunto: media aritmética


Y el código:
Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;

/*
   P : N > 0
   Q : sum = \sum i : 0 <= i < N : V[i]
       less = #i : 0 <= i < N : N*V[i] < sum
       greater = #i : 0 <= i < N : N*V[i] > sum
*/
void statistics(const int V[], const int N, int &sum, int &less, int &greater)
{
  int n;
  for (n=sum=0;n<N;n++) sum+=V[n];
  for (n=less=greater=0;n<N;n++)
    {
      less+=((N*V[n]) < sum) ;
      greater+=((N*V[n]) > sum) ;
    }
  return ;
}

#define MAX 1000

int main()
{
  int V[MAX];
  int N, sum, less,greater;
  cin >> N ;
  for (int n=0; n < N ; n++)  cin >> V[n];
  statistics(V,N,sum,less,greater);
  cout << ((float)sum/N) << "  " << less << "  " << greater << endl;
  return 0 ;
}


Algunos ejemplos:

Dos notas, valores 1 y 2 ...

2
1 2


La media es 0.5 y hay 1 menor (el 1) y 1 mayor (el 2)

1.5  1  1


Tres valores.

3
1 0 0


La media es 0.333333 (cuidado!, los "float" no son precisos!, es 0.3333333333333... infinitas veces)  y hay 2 menores (los 0) y 1 mayor (el 1)

0.333333  2  1



(Te dejo que interpretes tú este)

3
2 2 2


(salida)
2  0  0
Si la depuración es el proceso de eliminar fallos en el software, entonces programar debe ser el proceso de ponerlos dentro. (Edsger Dijsktra)