Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/11/2012, 14:23
antonio715
 
Fecha de Ingreso: agosto-2012
Ubicación: Alcalá
Mensajes: 37
Antigüedad: 11 años, 8 meses
Puntos: 0
Error invalid types `int[int]' for array subscript

Código C++:
Ver original
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5.  
  6.  using namespace std;
  7.  
  8.  /*
  9.  
  10.              
  11.               0:Ataque
  12.               1:Daño
  13.               2:PG
  14.               3:CA
  15.               4:Destreza    
  16.               5:Unidades
  17.                      
  18.  */
  19.              
  20.  void rellenar_caballero (int &caballero)
  21.  {
  22.     int Nataques, Ataque, Danio, PG, CA, Destreza, Unidades;
  23.     cout <<"Introduce el numero de ataques: ";
  24.     cin>>Nataques;
  25.     cout <<"Introduce el valor del ataque: ";
  26.     cin >>Ataque;
  27.     for (int i=0; i<Nataques; i++)
  28.         caballero[i][0]=Ataque;
  29.     cout <<"Introduce el valor del daño: ";
  30.     cin >>Danio;
  31.     for (int i=0; i<Nataques; i++)
  32.         caballero[i][1]=Danio;
  33.     cout <<"Introduce el PG: ";
  34.     cin >>PG;      
  35.     for (int i=0; i<Nataques; i++)
  36.         caballero[i][2]=PG;  
  37.     cout <<"Introduce el CA: ";
  38.     cin >>CA;      
  39.     for (int i=0; i<Nataques; i++)
  40.         caballero[i][3]=CA;
  41.     cout <<"Introduce la destreza: ";
  42.     cin >>Destreza;      
  43.     for (int i=0; i<Nataques; i++)
  44.         caballero[i][4]=Destreza;
  45.     cout <<"Introduce el numero de unidades: ";
  46.     cin >>Unidades;      
  47.     for (int i=0; i<Nataques; i++)
  48.         caballero[i][5]=Unidades;  
  49.    
  50.  }
  51. void rellenar_invocaciones (int &invocaciones, int Ninv)
  52.  {
  53.     int Nataques, Ataque, Danio, PG, CA, Destreza, Unidades;
  54.     cout <<"Introduce el numero de ataques: ";
  55.     cin>>Nataques;
  56.     cout <<"Introduce el valor del ataque: ";
  57.     cin >>Ataque;
  58.     for (int i=0; i<Nataques; i++)
  59.         invocaciones[Ninv][i][0]=Ataque;
  60.     cout <<"Introduce el valor del daño: ";
  61.     cin >>Danio;
  62.     for (int i=0; i<Nataques; i++)
  63.         invocaciones[Ninv][i][1]=Danio;
  64.     cout <<"Introduce el PG: ";
  65.     cin >>PG;      
  66.     for (int i=0; i<Nataques; i++)
  67.         invocaciones[Ninv][i][2]=PG;  
  68.     cout <<"Introduce el CA: ";
  69.     cin >>CA;      
  70.     for (int i=0; i<Nataques; i++)
  71.         invocaciones[Ninv][i][3]=CA;
  72.     cout <<"Introduce la destreza: ";
  73.     cin >>Destreza;      
  74.     for (int i=0; i<Nataques; i++)
  75.         invocaciones[Ninv][i][4]=Destreza;
  76.     cout <<"Introduce el numero de unidades: ";
  77.     cin >>Unidades;      
  78.     for (int i=0; i<Nataques; i++)
  79.         invocaciones[Ninv][i][5]=Unidades;  
  80.    
  81.  }
  82. void rellenar_humanas (int &humanas, int Nhum)
  83.  {
  84.     int Nataques, Ataque, Danio, PG, CA, Destreza, Unidades;
  85.     cout <<"Introduce el numero de ataques: ";
  86.     cin>>Nataques;
  87.     cout <<"Introduce el valor de los ataques separados por espacios: ";
  88.     for (int i=0; i<Nataques; i++)
  89.         cin >> humanas[Nhum][i][0];
  90.     cout <<"Introduce el valor del daño: ";
  91.     cin >>Danio;
  92.     for (int i=0; i<Nataques; i++)
  93.         humanas[Nhum][i][1]=Danio;
  94.     cout <<"Introduce el PG: ";
  95.     cin >>PG;      
  96.     for (int i=0; i<Nataques; i++)
  97.         humanas[Nhum][i][2]=PG;  
  98.     cout <<"Introduce el CA: ";
  99.     cin >>CA;      
  100.     for (int i=0; i<Nataques; i++)
  101.         humanas[Nhum][i][3]=CA;
  102.     cout <<"Introduce la destreza: ";
  103.     cin >>Destreza;      
  104.     for (int i=0; i<Nataques; i++)
  105.         humanas[Nhum][i][4]=Destreza;
  106.     cout <<"Introduce el numero de unidades: ";
  107.     cin >>Unidades;      
  108.     for (int i=0; i<Nataques; i++)
  109.         humanas[Nhum][i][5]=Unidades;  
  110.    
  111.  }
  112.      
  113.  int main()
  114. {
  115.     int caballero [100][6], invocaciones[10][10][6], humanas[10][10][6];
  116.     bool mas=true, mas2=false;
  117.     cout <<"Introduce las características del caballero: "<<endl;
  118.     rellenar_caballero (caballero);
  119.     do
  120.     {
  121.        int Ninv=0;
  122.        char eleccion;
  123.        cout <<"Introduce los datos del pelotón de invocaciones: "<<endl;
  124.        rellenar_invocaciones (invocaciones, Ninv);
  125.        cout <<"¿Quieres introducir otro pelotón de invocaciones? (Y/N) ";
  126.        cin >>eleccion;
  127.        do
  128.        {
  129.        switch (toupper(eleccion))
  130.               case 'Y': Ninv++; break;
  131.               case 'N': mas=false; break;
  132.               default: cout <<"eleccion no valida"; mas2=true; break;  
  133.        }while (mas2);
  134.     }while (mas);
  135.     mas=true;
  136.     mas2=false;
  137.     do
  138.     {
  139.        int Nhum=0;
  140.        char eleccion;
  141.        cout <<"Introduce los datos del pelotón de humanas: "<<endl;
  142.        rellenar_humanas (humanas, Nhum);
  143.        cout <<"¿Quieres introducir otro pelotón de humanas? (Y/N) ";
  144.        cin >>eleccion;
  145.        do
  146.        {
  147.        switch (toupper(eleccion))
  148.               case 'Y': Nhum++; break;
  149.               case 'N': mas=false; break;
  150.               default: cout <<"eleccion no valida"; mas2=true; break;  
  151.        }while (mas2);
  152.     }while (mas);
  153.    
  154.    
  155.    
  156.    
  157.    
  158.     system("PAUSE");
  159.     return EXIT_SUCCESS;
  160.  
  161. }
en la línea 28, 32, 36...etc me da el error al compilar invalid types `int[int]' for array subscript pero no sé bien a qué se refiere, es un array int.. no entiendo nada..
y en la línea 131 me dice case label `'N'' not within a switch statement que tampoco entiendo..

A ver si alguien lo entiende.. Gracias