0

The problem is that the expected output is not correct. Output I am getting it is shared below (expected output vs my code output).

  • PRECONDITION: it takes a map represented by a matrix of dimensions col x row, which 'A' represents a place where there is WATER, and 'T' where its LAND.
  • POSTCONDITION: Returns the count of isles from the map. An island is a set of adyacents lands orthogonal or diagonal (it could be only one).

Index of the map given must be used as a map [c][r] donde c and r belong to the column and row respectively. Matrix given must be returned without modifications.

Example 1

Input: (['T','A','T','A'], 4, 1)
Output: 2

Example 2

Input: (['T','T','A'
           'A','A','T'
           'A','A','A'
           'T','T','A'], 3, 4)
Output: 2

OUTPUT(EXPECTED VS MINE)

Prueba Islas 1 -> ERROR salida incorrecta Parametros de entrada: ['T','A','T','A','T','A'], 6, 1 Se esperaba: 3

Se recibio: 0

Prueba Islas 2 -> ERROR salida incorrecta Parametros de entrada: ['T','A','T','A','T','A','T','T','T','T','T','T'], 6, 2 Se esperaba: 1

Se recibio: 0

Prueba Islas 3 -> ERROR salida incorrecta Parametros de entrada: ['T','A','T','A','T','T','T','A','T','A','A','T','T','A','A','T','T','T','T','A'], 10, 2 Se esperaba: 2

Se recibio: 0

Prueba Islas 4 -> ERROR salida incorrecta Parametros de entrada: ['T','A','T','A','T','A','A','T','A','T','A','T','T','A','A','T','A','T','T','T','T','A','T','T'], 6, 4 Se esperaba: 1

Se recibio: 0

Prueba Islas 5 -> ERROR salida incorrecta Parametros de entrada: ['A','A','A','A','A','A','A','A','A','A','A','T','T','A','T','T','A','T','T','A','A','T','T','A','T','T','A','T','T','A','A','A','A','A','A','A','A','A','A','A'], 10, 4 Se esperaba: 3

Se recibio: 0

Prueba Islas 6 -> ERROR salida incorrecta Parametros de entrada: ['A','T','T','T','T','T','A','T','T','T','A','T','A','A','A','T','A','T','A','T','A','T','A','A','T','T','A','T','A','T','A','T','T','T','T','A','A','A','T','A'], 10, 4 Se esperaba: 2

Se recibio: 0

PRUEBAS FUNCION PruebaIslas HAY PRUEBAS INCORRECTAS

This is what I´ve tried to do:

int islas(char** mapa, int col, int fil)
   void borrarIsla(char** mapa, int col, int fil, int pCol, int pFil) {
    mapa[pCol][pFil] = 'A';
    int vectPosC[8] = { 1,1,0,-1,-1,-1,0,1 };
    int vectPosF[8] = { 0,1,1,1,0,-1,-1,-1 };
    int u, v;
    for (int k = 0; k < 8; k++) {
        u = pCol;
        v = pFil;
        u += vectPosC[k];
        v += vectPosF[k];
        if (dentro(col, fil, u, v) && mapa[u][v] == 'T') {
            borrarIsla(mapa, col, fil, u, v);
        }
    }
}

bool dentro(int col, int fil, int u, int v) {
    return u >= 0 && u < col && v >= 0 && v < fil;
}

char** copiaListaStr(char** listPalabras, int largoVec) {
    if (largoVec > 0) {
        char** aux = new char* [largoVec];
        for (int i = 0; i < largoVec; i++)
        {
            int largoPalabra = largoStr(listPalabras[i]);
            aux[i] = copiarStr(listPalabras[i], largoPalabra);
        }
        return aux;
    }
    return NULL;
}


char* copiarStr(char* palabra, int largo) {
    char* aux = new char[largo + 1];
    for (int i = 0; i < largo; i++)
    {
        aux[i] = palabra[i];
    }
    aux[largo] = '\0';
    return aux;
}

int largoStr(char* vec) {
    int i = 0;
    while (vec[i])
    {
        i++;
    }
    return i;
}

int islas(char** mapa, int col, int fil) {
    int cont = 0;
    char** mapAux = copiaListaStr(mapa, col);
    for (int j = 0; j < col; j++) {
        for (int i = 0; i < fil; i++) {
            if (mapAux[j][i] == 'T') {
                cont++;
                borrarIsla(mapAux, col, fil, j, i);
            }
        }
        delete[] mapAux[j];
    }
    delete[] mapAux;
    return cont;

}
  • What were the results when you used a debugger? Which statement is causing the issue? – Thomas Matthews Apr 02 '20 at 22:11
  • Unrelated, probably: Consider replacing `char** mapa` with [something like what is described in this answer](https://stackoverflow.com/a/2076668/4581301). Much easier management and often noticeably faster due to improved spatial locality. – user4581301 Apr 02 '20 at 22:11

0 Answers0