elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
07 Septiembre 2008, 02:07  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderador: ®®)
| | |-+  [SOLUCIONADO]Problemas al averiguar nota media...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: [SOLUCIONADO]Problemas al averiguar nota media...  (Leído 137 veces)
A¥åHøRå

Desconectado Desconectado

Mensajes: 315



Ver Perfil WWW
[SOLUCIONADO]Problemas al averiguar nota media...
« en: 05 Julio 2008, 17:49 »

Hola,
Estoy aprendiendo C++ y para ello estoy haciendo unos ejercicios prácticos. En uno de ellos tengo que averiguar la nota media mediante una función de unas calificaciones  previamente introducidas en un vector. El código que he escrito es el siguiente:

Código
double media (std::vector<double> notas3){
   for (int i = 0; i != notas3.size(); ++i){
        media += notas3[i];
    }
    media = media / notas3.size();
    return media;
}

El caso es que me da los siguiente errores:
Citar
error: invalid operands of types 'double ()(std::vector<double, std::allocator<double> >)' and 'double' to binary 'operator+'
error: in evaluation of 'operator+=(double ()(class std::vector<double, std::allocator<double> >), double)'
error: invalid operands of types 'double ()(std::vector<double, std::allocator<double> >)' and 'size_t' to binary 'operator/'
error: cannot convert 'double (*)(std::vector<double, std::allocator<double> >)' to 'double' in return

Pero no lo entiendo... al poner "vector" no sería ya un double? Cómo lo soluciono?

salu2  ;)

« Última modificación: 06 Julio 2008, 00:25 por A¥åHøRå » En línea

Freeze.

Desconectado Desconectado

Mensajes: 2.403


FireSoft


Ver Perfil WWW
Re: Problemas al averiguar nota media...
« Respuesta #1 en: 05 Julio 2008, 17:55 »

A lo rapido creo que es esto lo que quieres hacer, pero el problema es que lo hice en C

Código
#include <stdio.h>
#include <stdlib.h>
int media(int num,int num2);
int main ()
{
  int notas[0];
  notas[0] = 20;
  notas[1] = 16;
  printf("%d",media(notas[0],notas[1]));
  system("pause>nul");
}
int media(int num,int num2) {
  int suma;
  suma = num + num2;
  return suma / 2;
}
 
En línea

Gana premios:


ghastlyX
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1.691


No es posible conseguir nada sin arriesgarse algo


Ver Perfil
Re: Problemas al averiguar nota media...
« Respuesta #2 en: 05 Julio 2008, 19:56 »

¿No ves que estás sumando a la función? Tienes que usar una variable, no la propia función.
Código
#include <iostream>
#include <vector>
using namespace std;
 
double media (std::vector<double> notas3)
{
   double med = 0;
   for (int i = 0; i != notas3.size(); ++i) med += notas3[i];
   med /= notas3.size();
   return med;
}
 
int main()
{
   vector<double> notas(2);
   notas[0] = 5;
   notas[1] = 6.5;
   cout << media(notas);
}

Un saludo de ghastlyX ;)
En línea
A¥åHøRå

Desconectado Desconectado

Mensajes: 315



Ver Perfil WWW
Re: [SOLUCIONADO]Problemas al averiguar nota media...
« Respuesta #3 en: 06 Julio 2008, 00:27 »

Gracias, cambié la llamada a la función por una variable y ya funcionó...

gracias
En línea

Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC