#include <stdio.h> #include <string.h> char c[100][100]; char input; int main(){ //初始化陣列 for(int j=0;j<100;j++) for(int i=0;i<100;i++) c[i][j]='\0'; //i為橫向,j為縱向,從右上角開始 int i=99,j=0; while(1){ input = getc(stdin); if(input==EOF)break; if(input=='\n'){ //遇換行則從前一行的最上面開始 j=0; i--; }else{ c[i][j] = input; j++; //不斷往下寫入 } //if(input)break; } i++; int flag=i; //設定旗標,標在倒數第i行,輸出都從這邊開始往右 int check=0; for(j=0;j<100;j++){ while(i<100){ if(c[i][j]!='\0')printf("%c",c[i][j]); else printf(" "); i++; if(c[i][j+1]!='\0'){check=1;} //順便檢查下一行 } //如果下一行還存有資料,輸出換行,否則就跳出迴圈 if(check==1)printf("\n");else break; check=0; i = flag; //輸出完一列,就要將i跳回旗標開始處 } return 0; }
2014年8月29日星期五
[UVa] 490 - Rotating Sentences
訂閱:
發佈留言 (Atom)
-
因為先前寫UVa時,檔案名稱有時會花心思改,有時就直接把題目名稱加上.cpp就貼上了 導致現在有不同的格式出現 現在要處理的事情很簡單 1. 去除空白 2. 將底線 ( _ ) 換成dash ( - ) 經過一番查詢,終於發現最簡單的方法 - re...
-
文章出處: http://infbugs.blogspot.tw/2011/12/c_20.html 謝謝沙耶,解答了我長久以來對於 input/output 的疑惑。 C 語言入門 - 在線上批改系統練功 如何練習使用基本語法 自己出個練習題試著寫...
-
一開始用數學方法推斷得出,設輸入為n k為在n的前一斜線列數,故只要找到 (1+k)*k/2 < n 的最大k值,即可判定 k%2 == 1 => ((2*n)-(k*k)-k)/2 / ((k*k)+(3*k)-(2*n)+4)/2 k%2 ==...
沒有留言:
發佈留言