The code is very confusing. There is no time to tidy up the time too tight, not a good idea ~ but it can be AC ...
I can not see the news, or add QQ joint discussion
#include <stdio.h> #include <string.h> #include <iostream>using namespace Std;char s[11][11];int num[ 11][11];int Vis[11][11];int Main () {int r,c; int t=0; while (scanf ("%d", &r)!=eof) {if (r==0) break; t++; scanf ("%d", &c); for (int i=0;i<r;i++) {scanf ("%s", S[i]); }//number; memset (num,0,sizeof (num)); memset (vis,0,sizeof (VIS)); int t1=0; for (int i=0;i<r;i++) {for (int j=0;j<c;j++) {if (s[i][j]!= ' * ') {if (i==0) {num[i][j]=++t1; } else if (j==0) {num[i][j]=++t1; } else if (s[i][j-1]== ' * ' | | s[i-1][j]== ' * ') {num[i][j]=++t1; } } } }for (int i=0;i<r;i++)//{//for (int j=0;j<c;j++)//{//printf (" %d ", num[i][j]);//}//printf (" \ n ");//}//Output. if (t!=1) printf ("\ n"); printf ("Puzzle #%d:\n", t); printf ("across\n"); int flag=0; int cnt1=0; int flag1=1; for (int i=0;i<r;i++) {for (int j=0;j<c;j++) {if (s[i][j]== ' * ' &&f LAG) {flag=0; printf ("\ n"); } if (s[i][j]!= ' * ') {if (num[i][j]!=0) { if (i==0&&num[i][j-1]==0) printf ("%3d.", Num[i][j]); else if (i!=0&& (j==0| | s[i][j-1]== ' * ')) printf ("%3d.", Num[i][j]); } if (j==c-1) { printf ("%c\n", S[i][j]); flag=0; } else {printf ("%c", S[i][j]); flag=1; }}}} printf ("down\n"); for (int i=0;i<r;i++) {for (int j=0;j<c;j++) {if (num[i][j]!=0) {if (i==0) printf ("%3d.", Num[i][j]); else if (s[i-1][j]== ' * ') printf ("%3d.", Num[i][j]); } if (s[i][j]!= ' * ' &&!vis[i][j]) {for (int k=i;s[k][j]!= ' * ' &&am p;k<r;k++) {vis[k][j]=1; printf ("%c", S[k][j]); } printf ("\ n"); }}}} return 0;}
Copyright notice: This article blog original articles, blogs, without consent, may not be reproduced.
UVA 232-crossword Answers