UVa232
来源:互联网 发布:同花顺云计算 编辑:程序博客网 时间:2024/06/07 15:23
字符串处理的水题。
主要是要看清题目的output案例,down的输出是按编号增加的顺序来的,而不是竖行从左往右一行一行来输出
另外注意两个case间需要有换行,而当Across和Down为空值(即图像为全*时),需要做一个判断保证它们之间只能有一个换行
#include<stdio.h>#include<string.h>char board[50][50];int flag[100];int main(){int kase=1;int r,c;while(true){scanf("%d",&r);if(r==0) break;scanf("%d",&c);getchar();for(int i=0;i<r;i++){for(int j=0;j<c;j++)board[i][j]=getchar();getchar();}if(kase>1)printf("\n");printf("puzzle #%d:\n",kase);printf("Across\n");int count=1;for(int i=0;i<r;i++){for(int j=0;j<c;j++){if(board[i][j]!='*'){if(j-1<0||board[i][j-1]=='*'){ if(count>1) printf("\n%3d.%c",count,board[i][j]); else printf("%3d.%c",count,board[i][j]);flag[count]=i*c+j;count++;}else{ printf("%c",board[i][j]); if(i-1<0||board[i-1][j]=='*') { flag[count]=i*c+j; count++;} }}}}if(count>1) printf("\n");printf("Down\n");int sum=count-1;count=1;for(int k=1;k<=sum;k++){int i=flag[k]/c,j=flag[k]%c;int ok=0;while(i<r){if(board[i][j]!='*'){if(i-1<0||board[i-1][j]=='*'){ if(k>1) printf("\n%3d.%c",k,board[i][j]); else printf("%3d.%c",k,board[i][j]);ok=1;}else{ if(!ok) break;printf("%c",board[i][j]);}i++;}else break;}}if(sum>0) printf("\n");kase++;}return 0;}
粗心的习惯加油改正吧╮(╯_╰)╭
0 0
- UVA232
- Uva232
- UVa232
- UVa232
- UVa232
- uva232 - Crossword Answers
- [UVA232]Crossword Answers
- Crossword Answer UVa232
- UVa232 Crossword Answers
- UVA232 Crossword Answer
- UVa232 Crossword Answers AC
- UVA232解题报告
- UVa232-Crossword Answers
- 3.6 Crossword Answers UVa232
- 纵横字谜的答案 (UVa232)
- UVA232 纵横字的解答
- UVa232——Crossword Answers
- UVA232 UVALive5171 POJ1888 Crossword Answers
- 工具的使用——谷歌浏览器(chrome) (二)
- 第二次上机作业
- Redis源码解析:09redis数据库实现(键值对操作、键超时功能、键空间通知)
- c++第一次上机作业-2
- 花式作死?盘点不作死就不会死的数学家
- UVa232
- vpn.tongji.edu.cn的使用
- TED
- Ubuntu下安装Chrome浏览器的两个方法
- 001
- DP(0)
- struts2开发javaWeb 项目时遇到jar包冲突问题的解决办法
- 机器学习算法工程师的经典面试问题
- 汉字转大写拼音总结