posts - 64, comments - 4, trackbacks - 0, articles - 0

pku_1046 & boj_1359

Posted on 2010-08-31 23:25 acronix 阅读(134) 评论(0)  编辑 收藏 引用 所属分类: qqy解题报告
//考察点:  纯模拟
//思路: 大概听别人说过解题的方向
//提交情况: 2WA 1AC
第一次错在 两个case之间没有空格(实际上应该有)
第二次错在 最后一个case多了一个回车(实际上应该没有)
//收获:  对枚举更加熟悉了
//经验:  写完代码仍然需要静态观察 纠结很久的代码需要静下心来一个个模块严重
//ACcode:
//终于AC  啊啊啊啊啊啊
#include<stdio.h>
#include
<string.h>
#include
<memory.h>
char a[5][30= {
{
'#','-','#','#',' ','#','#','-','#','#','-','#','#',' ','#','#','-','#','#','-','#','#','-','#','#','-','#','#','-','#'},
{
'|',' ','|','#',' ','|','#',' ','|','#',' ','|','|',' ','|','|',' ','#','|',' ','#','#',' ','|','|',' ','|','|',' ','|'},
{
'#',' ','#','#',' ','#','#','-','#','#','-','#','#','-','#','#','-','#','#','-','#','#',' ','#','#','-','#','#','-','#'},
{
'|',' ','|','#',' ','|','|',' ','#','#',' ','|','#',' ','|','#',' ','|','|',' ','|','#',' ','|','|',' ','|','#',' ','|'},
{
'#','-','#','#',' ','#','#','-','#','#','-','#','#',' ','#','#','-','#','#','-','#','#',' ','#','#','-','#','#','-','#'}};

void output(int size,char t[])
{
    
int cnt,i,j,k,tt,mark,len=strlen(t),n=0;
    
char *= t;
    
while(*p)
    {
        
*-= '0';
        p
++;
    }
    
for(i=0;i<5;i++)
    {
        
if(i%2 == 0//even
        {
            
for(cnt=3*t[n];n<len;cnt=3*t[++n])
            {
                
for(j=cnt,mark = cnt;j<cnt+3;j++)
                {
                    
if(a[i][j] == '#') printf(" ");
                    
else for(k=0;k<size;k++) printf("%c",a[i][j]);
                    
if(j == mark+2 && n != len-1) printf(" ");
                }
            }
            n
=0;
            printf(
"\n");
        }
        
else //odd
        {
            
for(tt=0;tt<size;++tt)
            {
                
for(cnt=3*t[n];n<len;cnt=3*t[++n])
                {
                    
for(j=cnt,mark=cnt;j<cnt+3;j++)
                    {

                        
if(a[i][j] == '#') printf(" ");
                        
else if(a[i][j] == '|') {printf("|");}
                        
else for(k=0;k<size;k++) printf("%c",a[i][j]);
                        
if(j == mark+2 && n != len-1) printf(" ");
                    }
                }
                n
=0;
                printf(
"\n");
            }
        }
    }
}

int main()
{
    
int n;
    
char tmp[11];
    
while(1)
    {

        scanf(
"%d %s",&n,tmp);
        
if(n == 0 && !strcmp(tmp,"0")) break;
        output(n,tmp);
        printf(
"\n");
        memset(tmp,
0,sizeof(tmp));
    }
    
return 0;
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理