UVA 445

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=386

按题目给出的字母和符号作出迷宫,遇到\0和!就换行,遇到将字母前的数字叠加为n,然后输出n个数字后面的那个字母,其中b代表空格

View Code
 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5  int i,j,sum;
 6  char str[10000];
 7  while(gets(str)!=NULL)
 8      {
 9       sum=0;
10       for(i=0;str[i]!='\0';i++)
11          {
12           if(str[i]>='0'&&str[i]<='9')  
13             {  
14              sum+=str[i]-'0';  
15             }  //如果是数字,则计和
16             else if(str[i]=='!')  
17                 {  
18                 printf("\n");  
19                 sum=0;  
20                 }  //如果是!就换行
21             else if(str[i]=='b')  
22                 {  
23                  for(j=0;j<sum;j++)  
24                    printf(" ");  
25                   sum=0;  
26                 }  //b则输出空格
27             else  
28                {  
29                 for(j=0;j<sum;j++)  
30                 printf("%c",str[i]);  
31                 sum=0;  
32                }  //字母或星号则按数量输出
33          }
34       printf("\n");
35      }
36     return 0;
37 }

 

posted @ 2013-02-18 14:13  执着追求的IT小小鸟  阅读(126)  评论(0编辑  收藏  举报