三个AC,两个RE,咋回事

P5730 【深基5.例10】显示屏

zhuzihan0903 @ 2024-09-24 22:02:04

#include <iostream>
using namespace std;
int main(){
    int tubes[10][8] = {
        {6,0,1,2,4,5,6},{2,2,5},{5,0,2,3,4,6},{5,0,2,3,5,6},
        {4,1,2,3,5},{5,0,1,3,5,6},{6,0,1,3,4,5,6},{3,0,2,5},
        {7,0,1,2,3,4,5,6},{6,0,1,2,3,5,6}
    };
    int dot[7][3][2] = {
        {{0,0},{0,1},{0,2}}, 
        {{0,0},{1,0},{2,0}},  
        {{0,2},{1,2},{0,2}}, 
        {{2,0},{2,1},{2,2}},
        {{2,0},{3,0},{4,0}},
        {{2,2},{3,2},{4,2}},
        {{4,0},{4,1},{4,2}}  
    } ;
    char num [110], out [5][500];
    int n;
    cin >> n;
    for(int i = 0; i < n;i++){
        cin >> num[i];
    }
    for(int  i = 0 ; i <= 5; i++){
        for(int  j = 0;j < 4 * n - 1;j++){
            out[i][j] = '.';
        }
    }
    for(int i = 0;i < n;i++){
        int basex = 0,basey = i * 4,dight = num[i] - '0';

        for(int j = 1 ;j<=tubes[dight][0];j++){
            int tubenum = tubes[dight][j];
            out[basex+dot[tubenum][0][0]][basey+dot[tubenum][0][1]] = 'X';
            out[basex+dot[tubenum][1][0]][basey+dot[tubenum][1][1]] = 'X';
            out[basex+dot[tubenum][2][0]][basey+dot[tubenum][2][1]] = 'X';
        }
    }
    for(int i = 0;i < 5;i++,cout << endl)
        for(int j = 0;j <4 * n - 1; j++)
                cout << out [i][j];
    return 0;
}

by hoty2011 @ 2024-09-29 23:26:14

数组开大点就能过!!!


|