Código C++:
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..Ver original
#include<iostream> #include<stdio.h> #include <stdlib.h> #include <math.h> using namespace std; /* 0:Ataque 1:Daño 2:PG 3:CA 4:Destreza 5:Unidades */ void rellenar_caballero (int &caballero) { int Nataques, Ataque, Danio, PG, CA, Destreza, Unidades; cout <<"Introduce el numero de ataques: "; cin>>Nataques; cout <<"Introduce el valor del ataque: "; cin >>Ataque; for (int i=0; i<Nataques; i++) caballero[i][0]=Ataque; cout <<"Introduce el valor del daño: "; cin >>Danio; for (int i=0; i<Nataques; i++) caballero[i][1]=Danio; cout <<"Introduce el PG: "; cin >>PG; for (int i=0; i<Nataques; i++) caballero[i][2]=PG; cout <<"Introduce el CA: "; cin >>CA; for (int i=0; i<Nataques; i++) caballero[i][3]=CA; cout <<"Introduce la destreza: "; cin >>Destreza; for (int i=0; i<Nataques; i++) caballero[i][4]=Destreza; cout <<"Introduce el numero de unidades: "; cin >>Unidades; for (int i=0; i<Nataques; i++) caballero[i][5]=Unidades; } void rellenar_invocaciones (int &invocaciones, int Ninv) { int Nataques, Ataque, Danio, PG, CA, Destreza, Unidades; cout <<"Introduce el numero de ataques: "; cin>>Nataques; cout <<"Introduce el valor del ataque: "; cin >>Ataque; for (int i=0; i<Nataques; i++) invocaciones[Ninv][i][0]=Ataque; cout <<"Introduce el valor del daño: "; cin >>Danio; for (int i=0; i<Nataques; i++) invocaciones[Ninv][i][1]=Danio; cout <<"Introduce el PG: "; cin >>PG; for (int i=0; i<Nataques; i++) invocaciones[Ninv][i][2]=PG; cout <<"Introduce el CA: "; cin >>CA; for (int i=0; i<Nataques; i++) invocaciones[Ninv][i][3]=CA; cout <<"Introduce la destreza: "; cin >>Destreza; for (int i=0; i<Nataques; i++) invocaciones[Ninv][i][4]=Destreza; cout <<"Introduce el numero de unidades: "; cin >>Unidades; for (int i=0; i<Nataques; i++) invocaciones[Ninv][i][5]=Unidades; } void rellenar_humanas (int &humanas, int Nhum) { int Nataques, Ataque, Danio, PG, CA, Destreza, Unidades; cout <<"Introduce el numero de ataques: "; cin>>Nataques; cout <<"Introduce el valor de los ataques separados por espacios: "; for (int i=0; i<Nataques; i++) cin >> humanas[Nhum][i][0]; cout <<"Introduce el valor del daño: "; cin >>Danio; for (int i=0; i<Nataques; i++) humanas[Nhum][i][1]=Danio; cout <<"Introduce el PG: "; cin >>PG; for (int i=0; i<Nataques; i++) humanas[Nhum][i][2]=PG; cout <<"Introduce el CA: "; cin >>CA; for (int i=0; i<Nataques; i++) humanas[Nhum][i][3]=CA; cout <<"Introduce la destreza: "; cin >>Destreza; for (int i=0; i<Nataques; i++) humanas[Nhum][i][4]=Destreza; cout <<"Introduce el numero de unidades: "; cin >>Unidades; for (int i=0; i<Nataques; i++) humanas[Nhum][i][5]=Unidades; } int main() { int caballero [100][6], invocaciones[10][10][6], humanas[10][10][6]; bool mas=true, mas2=false; cout <<"Introduce las características del caballero: "<<endl; rellenar_caballero (caballero); do { int Ninv=0; char eleccion; cout <<"Introduce los datos del pelotón de invocaciones: "<<endl; rellenar_invocaciones (invocaciones, Ninv); cout <<"¿Quieres introducir otro pelotón de invocaciones? (Y/N) "; cin >>eleccion; do { case 'Y': Ninv++; break; case 'N': mas=false; break; default: cout <<"eleccion no valida"; mas2=true; break; }while (mas2); }while (mas); mas=true; mas2=false; do { int Nhum=0; char eleccion; cout <<"Introduce los datos del pelotón de humanas: "<<endl; rellenar_humanas (humanas, Nhum); cout <<"¿Quieres introducir otro pelotón de humanas? (Y/N) "; cin >>eleccion; do { case 'Y': Nhum++; break; case 'N': mas=false; break; default: cout <<"eleccion no valida"; mas2=true; break; }while (mas2); }while (mas); return EXIT_SUCCESS; }
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