Ayuda con codigo Matriz

jose :D
13 de Octubre del 2009
Hola A Todos

Yo plantee este algoritmo para resolver el siguiente problema.

* Un profesor desea colocar las notas de sus alumnos y al final obtener la suma de las Notas.

Para ello yo decidi usar una matriz vector, que lo que haga sea sumarme las notas y darme un vector "D", y la longitud del vector equivale al numero de alumnos... Las Notas de la Matriz "A" equivalen a un 20% de la Nota, las de "B" a un 35% y las de "C" a un 45%.

#include <cstdlib>
#include <iostream>
# define max 1000

using namespace std;

void Matrices(float A[max],float B[max],float C[max],float D[max]);
int main()
{
int estudiantes;
do
{ cout<<"ingrese el numero de estudiantes: ";
cin>>estudiantes;
}

void Matiz (float A[max],float B[max],float C[max],float D[max]);
cout << "Introduzca las primeras Notas de los estudiantes:"
for(int i=0;i<=estudiantes;i++){
cin >> A[i]*0.20;
}
cout << "Introduzca las segundas Notas de los estudiantes:"
for(int i=0;i<=estudiantes;i++){
cin >> B[i]*0.35;
}
cout << "Introduzca las Terceras Notas de los estudiantes:"
for(int i=0;i<=estudiantes;i++){
cin >> C[i]*0.45;
}
cout << "La suma de las Notas de cada estudiante es:"
for(int i=0;i<=estudiantes;i++)
{
D[0]=A[i]+B[i]+C[i];
}
for(int i=0;i<estudiantes;i++){
cout << D[i] << endl;
}
}

Espero me puedean Ayudar, ya sea con la solucion correcta del algortimo o con una orientacion ;)

Chao Muchas Gracias

Oliver
13 de Octubre del 2009
Hola jose, no soy un experto en esto, pero te ayudare lo mas que pueda, lo primero que te puedo decir y antes de ver la solucion que te doy, intenta terminar el programa que hiciste con las correcciones y si ves que despues de mucho intento no pudiste resolver mira recien la solucion, asi cuando tengas problemas similares tendras bien grabado de que manera resolver el problema....lo primero que cuando haces un do necesitas un while, puedes tener en cuenta digamoslo asi: "Hacer (do) ingreso de las notas de los alumnos (llamando a tu funcion) mientras(while) i (este usas como contador iniciando de 0 o 1) sea menor o igual que el numero de estudiantes".....lo otro que la funcion matrices que usas, tiene que ser usado con ese nombre, veo que usas matrices y luego matiz.....el otro error es que si comienzas el contador i en 0 debes limitarlo i<estudiantes, si haces <= le estas dando un numero mas(recuerda que estas contando el 0).....es mejr que el contador i lo declares una sola vez debajo del inicio de tu funcion int i; para que no estes declarandolo en cada for...lo otro es que segun la logica que tienes es casi innecesario crear otra funcion, basta con hacerlo en el main...Te mando la solucion sin usar otra funcion
#include <cstdlib>
#include <iostream>
# define max 1000

using namespace std;
int main()
{
int estudiantes,i,suma;
float A[max],B[max],C[max],D[max];

cout<<"ingrese el numero de estudiantes: ";
cin>>estudiantes;

cout << "Introduzca las primeras Notas de los estudiantes: ";
for(i=0;i<estudiantes;i++)
{
cin>> A[i];
}
cout << "Introduzca las segundas Notas de los estudiantes: ";
for(i=0;i<estudiantes;i++)
{
cin >> B[i];
}
cout << "Introduzca las Terceras Notas de los estudiantes: ";
for(i=0;i<estudiantes;i++)
{
cin >> C[i];
}

for(i=0;i<estudiantes;i++)
{
D[i]=A[i]*0.20+B[i]*0.35+C[i]*0.45;
}

cout << "La suma de las Notas de cada estudiante es:"<<endl;
for(i=0;i<estudiantes;i++)
{ cout<<"la suma del "<<i<<" alumno es: "<<D[i]<<endl;}


system("PAUSE");
return 0;
}

espero te sirva de algo, practica llamando a otra funcion y usando el while, cualquier consulta no lo dudes