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å »
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; }
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); }