2013年10月21日 星期一

[ZJ] a622 - 2.Vertical Printing


a622: 2. Vertical Printing
關鍵字:

通過 : 72 人 /86 次 送出 : 78 人 /347 次 | 通過比率 : 92%
公開 測資點 1 (100%): 1.0s, 512 MB | 評分方式: Tolerant

最近更新 : 2013-02-19 17:02 
內容 :
CodeWars 的裁判及計分員要在計分表的每一欄上方印隊名。不過要好看的話,隊名必需垂直列印。我們只需要用到隊名。請幫我們寫一個程式把輸入的隊名垂直印出。
輸入說明 : 
每個隊名一行,最後以 END 作為結束。和真的 CodeWars 不同的是,這題的隊名最多只有 16 個。
輸出說明 : 
你的程式將以輸入的順序將隊名由上到下垂直輸出到螢幕上。每個隊名之間要有兩個空白。
範例輸入 : help
Aardvarks
Emus
Road Runners
Coyotes
END
範例輸出 :
A  E  R  C
a  m  o  o
r  u  a  y
d  s  d  o
v        t
a     R  e
r     u  s
k     n
s     n
      e
      r
      s
提示 : 
出處 : 
HP CodeWars 2007 
(管理:snail)
--------------------------------------------------------------------------------------------------------
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
char s[20][100]={0};
int main(){
    int i,j=0,flag=1,c,n=0;
    while(gets(s[n]) && strcmp(s[n],"END")!=0) n++;
    while(flag){
        string a;
        for(c=0,i=0;i<n;i++){
            if(i) a+="  ";
            if(s[i][j]){
                a+=s[i][j];
                c=1;
            }
            else{
                a+=" ";
            }
        }
        if(!c) break;
        puts(a.c_str()),j++;
    }
}

沒有留言:

張貼留言