TOPIC

Presentation error

Rhuan Carlos asked 2 years ago

Como resolver esse presentation error? não estou conseguindo achar o erro e no compilador tá tudo certo até contei os espaços e tal


#include <stdio.h>

int tam(unsigned long long int a){
    int x = 0;
    for(;a>0; a /= 10, x++);
    return x;
}

int main(){
    unsigned long long mat[20][20] = {}; 
    int N, x, y, z, s, M, coluna[20] = {};
    scanf("%d", &N);
    for(x=0; x < N; x++){
        scanf("%d", &M);
        for(y = 0; y < M; y++){
            for(z = 0; z < M; z++){
                unsigned long long val;
                scanf("%llu", &val);
                val *= val;
                mat[y][z] = val;
            }
        }
        printf("Quadrado da matriz #%d:\n", x+4);
        for(y = 0; y < M; y++){
            unsigned long long int maior = 0;
            for(z = 0; z < M; z++){
                if(mat[z][y] > maior){
                    maior = mat[z][y];
                }
            }
            coluna[y] = tam(maior);
        }

        for(y = 0; y < M; y++){
            for(z = 0; z < M; z++){
                unsigned long long int num = mat[y][z];
                int esp = coluna[z] - tam(num);
                for(s = 0; s < esp; s++){
                    printf(" ");
                }
                printf("%llu", num);
                if(z != M-1){
                    printf(" "); 
                }
            }
            printf("\n");
        }
        if(N > 1){
            printf("\n");
        }
    }
    return 0;
}

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

  • William Tsubota replied 2 years ago

    Vc não trata o tamanho de quando a matriz recebe o elemento "0", ou seja, vc deixa o tamanho de 0 como um número de 0 digitos, e não como um número de 1 digito, que seria o certo