我觉得我的代码绝对没有问题,输出是对的,但就是过不了OJ,求助!

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

kbjh @ 2024-10-08 23:14:32

_我的想法就是知道要输出那些数以后,一行一行的把它们的模样描绘出来。输出看上去真的没什么问题,求助呀啊啊啊

#include<iostream>
using namespace std;
char mem[12][5][4]={

    "XXX",//0
    "X.X",
    "X.X",
    "X.X",
    "XXX",

    "..X",//1
    "..X",
    "..X",
    "..X",
    "..X",

    "XXX",//2
    "..X",
    "XXX",
    "X..",
    "XXX",

    "XXX",//3
    "..X",
    "XXX",
    "..X",
    "XXX",

    "X.X",//4
    "X.X",
    "XXX",
    "..X",
    "..X",

    "XXX",//5
    "X..",
    "XXX",
    "..X",
    "XXX",

    "XXX",//6
    "X..",
    "XXX",
    "X.X",
    "XXX",

    "XXX",//7
    "..X",
    "..X",
    "..X",
    "..X",

    "XXX",//8
    "X.X",
    "XXX",
    "X.X",
    "XXX",

    "XXX",//9
    "X.X",
    "XXX",
    "..X",
    "XXX"
};
int n;
char num[110];
int main(){
    scanf("%d",&n);
    for(int i=0;i<n+1;i++){
        scanf("%c",&num[i]);
    }

    //每一行都看一次num
    for(int r=0;r<5;r++){//row
        for(int ber=1;ber<n+1;ber++){//num里面每个数的第r行
            cout<<mem[num[ber]-'0'][r];
            if(ber!=n) cout<<'.';
        }
        if(r!=4) cout<<endl;
    }
}

by goodsnack @ 2024-10-21 18:17:05

你没做输入控制


by milk2715093695 @ 2024-10-22 18:43:48

如果是本地全过洛谷全 WA 应该是这个问题

应该是一个很常见的问题:洛谷上的输入使用的是 Windows 下的文件输入(应该是),换行符不是单个 \n 而是 \r\n,所以如果用scanf(%c)的话要额外做一次把 \r 也消除掉。

可以看我之前发过的帖子


|