此代码在vs上运行时只需要一个getchar()来读取n和数组之间的回车(我也这么认为)。但在洛谷上提交需要两个getchar();否则x【0】就是-38.
#include<stdio.h>
int main() {
int n;
char c;
int x[100] = { 0 };
int count = 0;
scanf("%d", &n);
getchar();//读取回车
getchar();
for (int i = 0; i < n; i++) {
x[i] = getchar() - 48;
}//输入
for (int i = 0; i < n; i++) {//每一行都循环一遍输入,共五遍
switch (x[i]) {
case 0:printf("XXX"); break;
case 1:printf("..X"); break;
case 2:printf("XXX"); break;
case 3:printf("XXX"); break;
case 4:printf("X.X"); break;
case 5:printf("XXX"); break;
case 6:
case 7:
case 8:
case 9:printf("XXX"); break;
default:printf("p"); break;
}
count++;
if (count != n) printf(".");//最后一项不要点
}printf("\n"); count = 0;
for (int i = 0; i < n; i++) {
switch (x[i]) {
case 0:printf("X.X"); break;
case 1:
case 2:
case 3:printf("..X"); break;
case 4:printf("X.X"); break;
case 5:
case 6:printf("X.."); break;
case 7:printf("..X"); break;
case 8:
case 9:printf("X.X"); break;
}
count++;
if (count != n) printf(".");
}printf("\n"); count = 0;
for (int i = 0; i < n; i++) {
switch (x[i]) {
case 0:printf("X.X"); break;
case 1:printf("..X"); break;
case 2:
case 3:
case 4:
case 5:
case 6:printf("XXX"); break;
case 7:printf("..X"); break;
case 8:
case 9:printf("XXX"); break;
}
count++;
if (count != n) printf(".");
}printf("\n"); count = 0;
for (int i = 0; i < n; i++) {
switch (x[i]) {
case 0:printf("X.X"); break;
case 1:printf("..X"); break;
case 2:printf("X.."); break;
case 3:
case 4:
case 5:printf("..X"); break;
case 6:printf("X.X"); break;
case 7:printf("..X"); break;
case 8:printf("X.X"); break;
case 9:printf("..X"); break;
}
count++;
if (count != n) printf(".");
}printf("\n"); count = 0;
for (int i = 0; i < n; i++) {
switch (x[i]) {
case 0:printf("XXX"); break;
case 1:printf("..X"); break;
case 2:printf("XXX"); break;
case 3:printf("XXX"); break;
case 7:
case 4:printf("..X"); break;
case 5:
case 6:
case 8:
case 9:printf("XXX"); break;
}
count++;
if (count != n) printf(".");
}
return 0;
}
这是提交全过的代码。 这是一个getchar()的运行结果(在vs上这才是正确的) p.XXX...X.XXX.XXX.X.X.XXX.XXX.XXX.XXX .X.X...X...X...X.X.X.X...X.....X.X.X .X.X...X.XXX.XXX.XXX.XXX.XXX...X.XXX .X.X...X.X.....X...X...X.X.X...X.X.X .XXX...X.XXX.XXX...X.XXX.XXX...X.XXX
(p是第一个switch——case的default) 求指点。