TOPIC

Presentation error (5%)

franca asked 2 years ago

Olá, não sei o que pode estar errado no código, já estou tentando quebrar a cabeça com esse código a algum tempo. alguém pode me dar uma luz?

include

include

include

using namespace std;

int main() { int tamanho_matriz; int inicio, fim, marcador; double matriz[100][100]{ 0 };

while(true)
{
    cin >> tamanho_matriz;
    if (tamanho_matriz == 0)
        break;
    inicio = 0;
    fim = tamanho_matriz - 1;
    marcador = 1;

    while (marcador <= tamanho_matriz * tamanho_matriz) //Preenche matriz por rotação
    {

        for (int i = inicio; i <= fim; i++) {
            matriz[inicio][i] = marcador;
        }
        for (int i = inicio + 1; i <= fim; i++) {
            matriz[i][fim] = marcador;
        }
        for (int i = fim - 1; i >= inicio; i--) {
            matriz[fim][i] = marcador;
        }
        for (int i = fim - 1; i >= inicio + 1; i--) {
            matriz[i][inicio] = marcador;
        }
        marcador++;
        inicio = inicio + 1;
        fim = fim - 1;
    }

    for (int line = 0; line < tamanho_matriz; line++)
    {

        for (int col = 0; col < tamanho_matriz; col++)  // acho que o erro pode ser aqui
        {
            if (col == 0)
                cout << right << setw(2) << matriz[line][col];
            else
                cout << right << setw(4) << matriz[line][col];
        }
        cout << endl;
    }
}

}

Remember not post solutions. Your post may be reviewed by our moderators.

  • DeyvsonLuiz replied 1 year ago

    Todas as repostas vai ter setw(3). Não precisa justificar à direita porque por padrão ele já justifica à direita. Então basta por "setw(3)". Só que ao final de cada linha não deve conter espaço, então você vai fazer uma verificação para quando for imprimir o último número da linha ele imprimir somente o setw(3), o dígito, e fim, sem o espaço no final.