Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SlateMark en 10 Agosto 2016, 18:07 pm



Título: Ayuda con arreglos sencillos a bidimensional en un programa
Publicado por: SlateMark en 10 Agosto 2016, 18:07 pm
Que tal amigos bueno estoy haciendo este programa donde le pregunta a 5 jueces la calificacion de 8 competidores y tiene que hacer distintas operaciones. mi duda es como hacer este programa de arreglo sencillo a bidimensional.

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void Leer(float *competidor)
  6. {
  7.    cout<<"***** Tabla de resultados de una competicion ***** \n\n "<<endl;
  8.    for (int i = 0; i<5; i++) {
  9.        cout<<endl<<"Lectura de juez # "<<i+1<<endl<<endl;
  10.        for (int j = 0; j<8; j++) {
  11.            cout<<"Ingrese Lectura del competidor "<<j+1<<" : ";
  12.            cin>>competidor[j];
  13.  
  14.        }
  15.  
  16.    }
  17.  
  18. }
  19.  
  20. void Calcular(float *competidor){
  21.  
  22.    float suma = 0;
  23.  
  24.    for (int j = 0; j<8; j++) {
  25.        suma = suma + competidor[j];
  26.    }
  27.    cout<<"Puntaje total: "<<suma<<endl;
  28.    cout<<"Promedio de calificacion: "<<suma/8<<endl;
  29.  
  30.    float Mayor = 0;
  31.    float Menor = 0;
  32.    int juezMayor = 0;
  33.    int competidorMenor = 0;
  34.    int MenoresProm=0;
  35.  
  36.    Menor = competidor[0];
  37.  
  38.    for ( int j = 0; j<8; j++) {
  39.        if (competidor[j] < (suma/18) ) {
  40.            MenoresProm++;
  41.        }
  42.  
  43.        if (competidor[j] > Mayor) {
  44.            Mayor = competidor[j];
  45.            juezMayor = j+1;
  46.        }
  47.  
  48.        if (competidor[j] < Menor) {
  49.            Menor = competidor[j];
  50.            competidorMenor = j+1;
  51.        }
  52.    }
  53.  
  54.    cout<<"competidor con menor promedio:  "<<MenoresProm<<endl;
  55.    cout<<"Juez con mayor promedio "<<juezMayor<<" cal : "<<Mayor<<endl;
  56.    cout<<"competidor con menor promedio "<<competidorMenor<<" cal: "<<Menor<<endl;
  57.  
  58. }
  59.  
  60. int main() {  
  61.  
  62.    float *competidor = new float[8];  
  63.    Leer(competidor);
  64.    Calcular(competidor);  
  65.    return 0;
  66. }

Espero su ayuda amigos. muchas gracias  ;-)


Título: Re: Ayuda con arrglos sencillos y bidimensional
Publicado por: AlbertoBSD en 10 Agosto 2016, 18:12 pm
Código
  1. int calificaciones[5][8];



Título: Re: Ayuda con arreglos sencillos a bidimensional en un programa
Publicado por: Yoel Alejandro en 12 Agosto 2016, 16:19 pm
Como te dijo Alberto, declara el arreglo calificaciones de 5x8, en el main() del programa, en lugar del arreglo competidor que tienes. Luego por ejemplo el leer() quedaría así:

Código
  1. void Leer( int calificaciones[][8] )
  2. {
  3.    cout<<"***** Tabla de resultados de una competicion ***** \n\n "<<endl;
  4.    for (int i = 0; i<5; i++) {
  5.        cout<<endl<<"Lectura de juez # "<<i+1<<endl<<endl;
  6.        for (int j = 0; j<8; j++) {
  7.            cout<<"Ingrese Lectura del competidor "<<j+1<<" : ";
  8.            cin>>calificaciones[i][j];
  9.        }
  10.    }
  11. }

Similarmente modifica la función calcular, para que la reciba el arreglo bidimensional e imprima las estadísticas de las puntuaciones de los 5 jueces para cada competidor.