不管如何还是纪念一下!
花费了将近2个小时,却还是wa。。。不说什么了
和样例输出一样, 不知道是哪里出了错。。。
#include<stdio.h>
#include<string.h>
int main(){
int n, m, coun, k=0;
char maps[15][15];
int numap[15][15];
memset(numap,0,sizeof(numap));
memset(maps,0,sizeof(maps));
while(scanf("%d",&n) == 1&&n){
scanf("%d",&m);
if(k++) printf("\n");
coun = 0;
for(int i = 1;i <= n; i++){
scanf("%s",&maps[i][1]);
for(int j = 1;j <= m;j++){
if(i == 1 && maps[i][j] != '*'){
numap[i][j] = ++coun;
}
else if(i != 1 && j == 1 && maps[i][j] != '*'){
numap[i][j] = ++coun;
}
else if(maps[i][j-1] == '*' && maps[i][j] != '*'){
numap[i][j] = ++coun;
}
else if(maps[i][j] != '*' && maps[i-1][j] == '*'){
numap[i][j] = ++coun;
}
}
}
printf("puzzle #%d:\n",k);
int t;
printf("Across\n");
for(int i = 1; i <= n; i++){
t = 0;
for(int j = 1; j <= m; j++){
if(j == 1&&maps[i][j] != '*'){
if(t++) printf("\n");
printf("%3d.",numap[i][j]);
}
else if(maps[i][j] != '*' && maps[i][j-1] == '*') {
if(t++) printf("\n");
printf("%3d.",numap[i][j]);
}
if(maps[i][j] != '*') printf("%c",maps[i][j]);
}
printf("\n");
}
printf("Down\n");
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++){
if(i == 1 && maps[i][j] != '*') {
printf("%3d.",numap[i][j]);
}
else if(i != 1 && maps[i][j] != '*' && maps[i-1][j] == '*') {
printf("%3d.",numap[i][j]);
}
if(i == 1 && maps[i][j] != '*') {
for(int s = i; s <= n; s++){
if(maps[s][j] == '*') break;
else printf("%c",maps[s][j]);
}
printf("\n");
}
else if(maps[i][j] != '*'&& maps[i-1][j] == '*'){
for(int s = i; s <= n; s++){
if(maps[s][j] == '*') break;
else printf("%c",maps[s][j]);
}
printf("\n");
}
}
}
}
return 0;
}
花费了将近2个小时,却还是wa。。。不说什么了
和样例输出一样, 不知道是哪里出了错。。。
#include<stdio.h>
#include<string.h>
int main(){
int n, m, coun, k=0;
char maps[15][15];
int numap[15][15];
memset(numap,0,sizeof(numap));
memset(maps,0,sizeof(maps));
while(scanf("%d",&n) == 1&&n){
scanf("%d",&m);
if(k++) printf("\n");
coun = 0;
for(int i = 1;i <= n; i++){
scanf("%s",&maps[i][1]);
for(int j = 1;j <= m;j++){
if(i == 1 && maps[i][j] != '*'){
numap[i][j] = ++coun;
}
else if(i != 1 && j == 1 && maps[i][j] != '*'){
numap[i][j] = ++coun;
}
else if(maps[i][j-1] == '*' && maps[i][j] != '*'){
numap[i][j] = ++coun;
}
else if(maps[i][j] != '*' && maps[i-1][j] == '*'){
numap[i][j] = ++coun;
}
}
}
printf("puzzle #%d:\n",k);
int t;
printf("Across\n");
for(int i = 1; i <= n; i++){
t = 0;
for(int j = 1; j <= m; j++){
if(j == 1&&maps[i][j] != '*'){
if(t++) printf("\n");
printf("%3d.",numap[i][j]);
}
else if(maps[i][j] != '*' && maps[i][j-1] == '*') {
if(t++) printf("\n");
printf("%3d.",numap[i][j]);
}
if(maps[i][j] != '*') printf("%c",maps[i][j]);
}
printf("\n");
}
printf("Down\n");
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++){
if(i == 1 && maps[i][j] != '*') {
printf("%3d.",numap[i][j]);
}
else if(i != 1 && maps[i][j] != '*' && maps[i-1][j] == '*') {
printf("%3d.",numap[i][j]);
}
if(i == 1 && maps[i][j] != '*') {
for(int s = i; s <= n; s++){
if(maps[s][j] == '*') break;
else printf("%c",maps[s][j]);
}
printf("\n");
}
else if(maps[i][j] != '*'&& maps[i-1][j] == '*'){
for(int s = i; s <= n; s++){
if(maps[s][j] == '*') break;
else printf("%c",maps[s][j]);
}
printf("\n");
}
}
}
}
return 0;
}