uva-迷宫题

很久之前做的一道水题,题意是输入迷宫代码翻译成图形,代码如下:

#include <stdio.h>

#include <string.h>
#include <ctype.h>
#define LOCAL
void print(char mistery[])
{
int len=strlen(mistery);
char a1,a2;
int sum,i,j,k;
sum=mistery[0]-'0';
for(i=0;i<132;i++)
{
if(isdigit(mistery[i])!=0&&isdigit(mistery[i+1])!=0)
sum=sum+mistery[i+1]-'0';

if(isdigit(mistery[i])!=0&&isdigit(mistery[i+1])==0)
  {
  if(mistery[i+1]!='b')
  {
  for(k=0;k<sum;k++)
  printf("%c",mistery[i+1]);
  sum=((mistery[i+2]=='!')?mistery[i+3]-'0':mistery[i+2]-'0');
  }
  else
  {for(k=0;k<sum;k++)
   printf(" ");
sum=((mistery[i+2]=='!')?mistery[i+3]-'0':mistery[i+2]-'0');
}
}
  if(mistery[i+1]=='!')
  printf("\n");
    }
}
int main()
{
#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif
char mistery[135]={'\0'};
int i,j,data=0;
while(gets(mistery)!=NULL)
{
if(mistery[0]=='\0')
{
printf("\n");
continue;
}
for(i=0;i<strlen(mistery);i++)
if(mistery[i]=='!')
break;
if(data!=0)
{
print(mistery);
for(j=0;j<135;j++)
mistery[j]='\0';
printf("\n");
}
else

print(mistery);
for(j=0;j<135;j++)
mistery[j]='\0';
printf("\n");
data++;}
   }
return 0;
}




//Judge的时候报的RuntimeError一般是野指针,数组越界,堆栈溢出,除0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值