题目大意:已知一个由立方体搭建的长宽高都不超过n的图像每个位置立方体的数量,输出三视图,看到立方体输出*,否则输出.

正视图:第一列的*数量,取决于第一列的最大立方体数量,第2-n列以此类推。

左视图:第一列的*数量,取决于第一行的最大立方体数量,第2-n列于对应的2-n行的最大值相关。

俯视图:有立方体就是*,否则是.

注意输出顺序,先输出第一行,也就是先输出最高的,循环从大到小。

#include <stdio.h>
int n, m, i, j, k, p[1005][1005];
int gao[1005], zuo[1005];
int main(){
    scanf("%d", &n);
    for(i=1; i<=n; i++){
        for(j=1; j<=n; j++){
            scanf("%d", &p[i][j]);
            if(p[i][j] > gao[j]) gao[j] = p[i][j];
            if(p[i][j] > zuo[i]) zuo[i] = p[i][j];
        }
    }
    for(i=n; i>=1; i--){//高 
        for(j=1; j<=n; j++){
            printf("%c", gao[j]>=i?'*':'.');
        }
        printf("\n");
    }
    for(i=n; i>=1; i--){//高 
        for(j=1; j<=n; j++){
            printf("%c", zuo[j]>=i?'*':'.');
        }
        printf("\n");
    }
    for(i=1; i<=n; i++){
        for(j=1; j<=n; j++){
            printf("%c", p[i][j]?'*':'.');
        }
        printf("\n");
    }
    return 0;
}