首页 > 代码库 > GDUFE ACM-1033

GDUFE ACM-1033

造箭?

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

  一年一度的GDCC校运会即将隆重开幕!今年新增了一项射箭大赛,好酷~你也想参加了,不过组委会不提供弓箭╯﹏╰那就只好选手自己带了。现在来锻造弓箭,包括箭身的长度l,不同长度的弓箭所需要的数目n,要求你把需要的弓箭都输出.弓箭的基本样子为 ">+---+>",其中"+---+"为箭身,数据保证箭身长度 > 2。好了,工欲善其事必先利其器,造箭啦!!

Input:

首先输入一个数t,表示有t组数据,
每组数据先有一个m(m<50),接下去有m行,
第i行两个整数l,n,分别代表箭身长度为l的弓箭有n支,(l< 30 , n< 10 )
输入数据保证每个l>2且都不同

Output:

按照箭身的长度从小到大的顺序依次输出所有需要的弓箭,每种规格的弓箭后面有一空行。

Sample Input:

1
3
2 3
8 2
4 5

Sample Output:

>++>
>++>
>++>

>+--+>
>+--+>
>+--+>
>+--+>
>+--+>

>+------+>
>+------+>

 

这道题挺有趣的:1.输入不再像以前那样输入一个回车后就打印,而是输入全部数据后才开始打印。
2.要排序n个数。
3.空格有点坑,
每组箭间有一个空格。

附上AC代码:
 1 #include <stdio.h>
 2 int main()
 3 {
 4     int t,n,a[100],b[100],i,j,p,p1,k[100],m,m1;
 5     scanf("%d",&t);
 6     while(t--)
 7     {
 8         scanf("%d",&n);
 9         for(i=0;i<n;i++)
10         {
11             scanf("%d%d",&a[i],&b[i]);
12             k[i]=a[i];
13         }
14         for(j=0;j<n-1;j++)
15         {
16             for(i=0;i<n-1-j;i++)
17             {
18                 if(k[i]>k[i+1])
19                 {
20                     p=k[i];
21                     k[i]=k[i+1];
22                     k[i+1]=p;
23                     p1=b[i];
24                     b[i]=b[i+1];
25                     b[i+1]=p1;
26                 }
27 
28             }
29         }
30             for(i=0;i<n;i++)
31             {
32                 for(m=0;m<b[i];m++)
33                 {
34                     printf(">+");
35                     for(m1=0;m1<k[i]-2;m1++)
36                         printf("-");
37                     printf("+>\n");
38                 }
39                 printf("\n");
40             }
41     }
42     return 0;
43 }

 嗯,就这样。。。。。。。。。

 
 

 

 

GDUFE ACM-1033