Dev - C++ - Alguien sabría decirme donde esta el problema.

 
Vista:
sin imagen de perfil

Alguien sabría decirme donde esta el problema.

Publicado por david (2 intervenciones) el 05/12/2016 20:58:05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
using namespace std;
const int Max=3;
typedef double Tarray [Max];
void insertarEstaturas (Tarray &estaturas);
void mostarEstaturas(Tarray mostrar);
float media (Tarray sumaymedia);
 
int main (){
    Tarray altura;
    insertarEstaturas(altura);
    cout<<media(altura)<<endl;
    mostarEstaturas(altura);
}
 
void insertarEstaturas (Tarray &estaturas){
    int cont=0,i=0;
    while(cont<Max){
        cout <<"Introduzca la altura del alumno: ";
        cin >> estaturas[i];
        cont++;
    }
}
 
void mostarEstaturas (Tarray mostrar){
    for(int i=0;i<Max;i++){
        cout<<mostrar[i]<<endl;
    }
}
 
float media (Tarray sumaymedia){
    int i=0;
    float suma=0;
    for (int i=0;i<Max;i++){
        suma=(suma+sumaymedia[i])/i;
    }
    return suma;
}

Captura
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 171
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Alguien sabría decirme donde esta el problema.

Publicado por juanki (73 intervenciones) el 05/12/2016 22:24:15
Hola

El problema lo tienes en el método insertarEstaturas:

1
2
3
4
5
6
7
8
9
void insertarEstaturas (Tarray &estaturas){
    int cont=0,i=0;
    while(cont<Max){
        cout <<"Introduzca la altura del alumno: ";
        cin >> estaturas[i];
        cont++;
        i++; // tienes que incrementar i también
    }
}
Estás recorriendo con un bucle el array e insertando en cada posición lo que introduce el usuario, para ello usas el índice i, pero no lo incrementas, por lo que los tres valores los insertas en la primera posición, quedando las otras dos con lo que en ese momento hubiese en memoria.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Alguien sabría decirme donde esta el problema.

Publicado por david (2 intervenciones) el 06/12/2016 11:19:41
Sii!!! ese era el fallo, muchísimas gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 171
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Alguien sabría decirme donde esta el problema.

Publicado por juanki (73 intervenciones) el 06/12/2016 13:09:05
Hola

Además, esa variable i te la puedes ahorrar, ya tienes a cont que siempre vale igual que i, por lo tanto si haces

1
cin >> estaturas[cont];

Ya te ahorras una variable. Y el incremento de cont lo puedes hacer también cuando lo usas:

1
cin >> estaturas[cont++];

y así te ahorras una línea. Igual queda más claro o legible si lo dejas como lo tenías tú, sobre todo si estás empezando, pero a mi me gusta hacerlo así.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar