Así, me da el error anterior (en el título), pero por alguna razón que sólo el lanzamiento de este error en el segundo bucle. Aviso de la primera y segunda vuelta, he de usar el cliente de la variable funciona absolutamente bien, no hay errores arrojados o nada. Pero en el último bucle, la salida de[cliente][cargo] de la matriz, hay una línea roja debajo de la salida de[cliente] que dice «Subíndice valor no es un array, puntero o vector». Estoy usando xcode, OSX Mavericks. Todos los de mi matrices se definen en otras partes, y han funcionado a la perfección toda la duración del programa hasta ahora. Hay algunas otras operaciones que pasa en el programa, pero no tienen nada que ver con este bucle, por lo que me acaba de publicar el código que estaba dando el error. De nuevo voy a decir, los cargos de[cliente][mes][cargo] bucle funciona bien, pero la salida de[cliente][salida] no está funcionando.

P. S. Usted probablemente va a pensar la lógica detrás de mantener todos los datos en numéricamente matrices indexadas es tonto, pero es para un proyecto de la escuela. Así que no me criticaban acerca de cómo este programa es lógicamente inconsistente o lo que sea. Gracias!

string headings[3][7];
string chargeLabels[3] = {"Electricity :","Water: ","Gas: "};
string outputLabels[5] = {"Subtotal: ","Discount: ","Subtotal: ","Tax: ","Total: "};
double charges[3][3][3];
double output[3][5];

for(int customer=0; customer<3; customer++)
{
    for(int heading=0; heading<5; heading++)
    {
        cout << headings[customer][heading];
    }

    for(int month=0; month<3; month++)
    {
        cout << chargeLabels[month];

        for(int charge=0; charge<3; charge++)
        {
            cout << charges[customer][month][charge] << ", ";
        }
        cout << endl;
    }
    for(int output=0; output<5; output++)
    {
        cout << outputLabels[output];
        //error is below this comment
        cout << output[customer][output] << endl;
    }
}
InformationsquelleAutor Eric Diviney | 2013-11-02

2 Comentarios

  1. 4

    Dentro de la for declaración:

    for(int output=0; output<5; output++)
    {

    Que se ha declarado una variable int output que las sombras de la double output[3][5] con el mismo nombre fuera de la for declaración.

  2. 2

    Aquí está el problema:

    double output[3][5];
    for(int output=0; output<5; output++)

    Estamos reutilizando output como una variable de nombre dos veces.

    Así que cuando se intenta acceder a él aquí:

    cout << output[customer][output] << endl;

    Está accediendo a los locales output, que es sólo una int.

Dejar respuesta

Please enter your comment!
Please enter your name here