hdu 1256 画 8

来源:互联网 发布:碳酸钙 柠檬酸钙 知乎 编辑:程序博客网 时间:2024/06/07 05:08
Problem Description
谁画8画的好,画的快,今后就发的快,学业发达,事业发达,祝大家发,发,发.
 

Input
输入的第一行为一个整数N,表示后面有N组数据.
每组数据中有一个字符和一个整数,字符表示画笔,整数(>=5)表示高度.
 

Output
画横线总是一个字符粗,竖线随着总高度每增长6而增加1个字符宽.当总高度从5增加到6时,其竖线宽度从1增长到2.下圈高度不小于上圈高度,但应尽量接近上圈高度,且下圈的内径呈正方形.
每画一个"8"应空一行,但最前和最后都无空行.
 

Sample Input
2A 7B 8
 

Sample Output
AAAA AAAA AA AAAA AAAA AA AA BBBBB BBBB BB BBBBB BBBB BBBB BB BBB
 
开始没有明白,被题坑了,对比正确的运行结果才明白我错了。纠结于中间的字母数。
错误的代码:
#include<stdio.h>  int main()    {       int n;         scanf("%d",&n);               for(int p=1;p<=n;p++)        {                char s;                int h;                int t;                int k;             int i;              int j;         getchar();               scanf("%c%d",&s,&h);                  t=h/6+1;                  k=(h-3)%2;               if(k==0)                {                   for(j=1;j<=h;j++)                     {                         if(j==1||j==h||j==((h+1)/2))                            {                                  for(i=0;i<t;i++)                                 printf(" ");                              for(i=0;i<2;i++)                                 printf("%c",s);                                printf("\n");                            }                         else                            {                                  for(i=0;i<t;i++)                                      printf("%c",s);                                  for(i=0;i<2;i++)                                      printf(" ");                                  for(i=0;i<t;i++)                                      printf("%c",s);                                    printf("\n");                            }                                               }                }               else                 {                     for(j=1;j<=h;j++)                     {                         if(j==1||j==h||j==(h/2))                            {                                  for(i=0;i<t;i++)                                 printf(" ");                              for(i=0;i<3;i++)                                 printf("%c",s);                               printf("\n");                            }                         else                            {                                  for(i=0;i<t;i++)                                      printf("%c",s);                                  for(i=0;i<3;i++)                                      printf(" ");                                  for(i=0;i<t;i++)                                      printf("%c",s);                                    printf("\n");                            }                                               }                 }                                              if(p<n)   printf("\n");           }         return 0;    }

调整后:AC
#include<stdio.h>  int main()    {       int n;     scanf("%d",&n);   for(int p=1;p<=n;p++)    {        char s;        int h;        int t;        int k;     int i;  int j; int l; getchar();       scanf("%c%d",&s,&h);          t=h/6+1;          k=(h-3)%2;          l=h/2-1;                 if(k==0)        {           for(j=1;j<=h;j++)             {             if(j==1||j==h||j==((h+1)/2))                {                  for(i=0;i<t;i++)                     printf(" ");                  for(i=0;i<l;i++)                     printf("%c",s);                    printf("\n");                }             else                {                  for(i=0;i<t;i++)                      printf("%c",s);                  for(i=0;i<l;i++)                      printf(" ");                  for(i=0;i<t;i++)                      printf("%c",s);                    printf("\n");                }                           }        }       else         {         for(j=1;j<=h;j++)             {             if(j==1||j==h||j==(h/2))                {                  for(i=0;i<t;i++)                     printf(" ");                  for(i=0;i<l;i++)                     printf("%c",s);                   printf("\n");                }             else                {                  for(i=0;i<t;i++)                      printf("%c",s);                  for(i=0;i<l;i++)                      printf(" ");                  for(i=0;i<t;i++)                      printf("%c",s);                    printf("\n");                }                           }         }                      if(p<n)   printf("\n");       }         return 0;    }

0 0