||[[TableOfContents]]|| == 도형 그리기 == {{{~cpp * ***** * ***** ** **** ** **** *** *** *** *** **** ** **** ** ***** * ***** * }}} 위 도형들을 출력하는 프로그램을 작성하세요 * 왜 다 어려운거야.ㅡㅜ - 일정 * ^^ - 승균 다른 방법도 있답니다. 도형을 출력하는 곳이 화면이 아니라면 말이죠. ;) --[1002] == 오승균 == ==== 따로따로 버젼 ==== {{{~cpp #include void main() { int num; cout << "숫자를 입력하시오 - "; cin >> num; cout << "\n"; cout << "삼각형 # 1" << "\n\n"; for (int i = 1; i < num + 1; i++) { for (int j = 0; j < i; j++) cout << "*"; for (int a = num + 1; a > i; a--) cout << " "; cout << "\n"; } cout << "\n"; cout << "삼각형 # 2" << "\n\n"; for (int k = 1; k < num + 1; k++) { for (int l = num + 1; l > k; l--) cout << "*"; for (int b = 0; b < k; b++) cout << " "; cout << "\n"; } cout << "\n"; cout << "삼각형 # 3" << "\n\n"; for (int m = 1; m < num + 1; m++) { for (int n = num; n > m; n--) cout << " "; for (int o = 0; o < m; o++) cout << "*"; cout << "\n"; } cout << "\n"; cout << "삼각형 # 4" << "\n\n"; for (int p = 1; p < num + 1; p++) { for (int q = 1; q < p; q++) cout << " "; for (int r = num + 1; r > p; r--) cout << "*"; cout << "\n"; } } }}} ==== 일렬 버젼 ==== {{{~cpp #include void main() { int num; cout << "숫자를 입력하시오 - (단, 20을 넘어가면 삼각형의 형태가 대략 좇치 않소)"; cin >> num; cout << "\n"; cout << "삼각형 싸그라 다" << "\n\n"; for (int i = 1; i < num + 1; i++) { for (int j = 0; j < i; j++) cout << "*"; for (int a = num + 1; a > i; a--) cout << " "; for (int l = num + 1; l > i; l--) cout << "*"; for (int b = 0; b < i; b++) cout << " "; for (int n = num; n > i; n--) cout << " "; for (int o = 0; o < i; o++) cout << "*"; for (int q = 0; q < i; q++) cout << " "; for (int r = num + 1; r > i; r--) cout << "*"; cout << "\n"; } } }}} 내일 물리수업 GG칠 각오를 하고...... 대략 새벽 4시 다되감 -_-;;; 잇힝~ * 오호~ 잠도 안 자고 한거야?? 난 그냥 잤는데ㅋ - 일정 [Digi-VM] == 황일정 == {{{~cpp #include using namespace std; int main() { cout<<"도형그리기"< using namespace std; int main() { cout<<"도형그리기"<>a; for(int i=0;i using namespace std; #define BOARDSIZE_X 40 #define BOARDSIZE_Y 5 bool bitmap[BOARDSIZE_X][BOARDSIZE_Y]; void drawTriangle(int startX, int startY, int size, int deltaX, int deltaY) { for (int i=0;i using namespace std; void showmenu(); int main() { showmenu(); int choice; cin >> choice; while(choice != 6) { switch(choice) { case 1 : { for(int i=1;i<=5;i++) { for(int j=1;j<=i;j++) cout << "*"; cout << "\n"; } } break; case 2 : { for(int i=5;i>=1;i--) { for(int j=1;j<=i;j++) cout << "*"; cout << "\n"; } } break; case 3 : { for(int i=5;i>=1;i--) { for(int j=1;j> choice; } cout << "종료해요.\n"; return 0; } void showmenu() { cout << "1~6번중에서 하나를 선택하세요.(6번은종료,숫자만입력할것) : "; } }}} 위에 선배님들이 해주신게 너무 짧아서 부끄러운-_-;; * 그래도 웬지 소스가 길면 뽀대 나잖아~ -_-;;;;;; - 승균 == Python Vs C/C++ 모두 같은 생각의 소스 == * 같은 생각으로 작성한다면 소스가 어떻게 표현될까 궁금했다. 소스양만 따지면, Python 을 위한 문제인가. * 포멧팅 이용, index 두개 === Python === Guido van Rossum 이라면 이거에 찬성할것 같다. {{{~cpp num = input("plz input number of asterisk: ") format = ( '%%%ds '% (num) ) * 4 for odd,even in zip(range(1,num+1), range(num,0,-1)): print format%( ('*'* odd,'*'*even) * 2 ) }}} === C === Kernighan과 Ritchie가 이걸 찬성할까? 모르겠다. {{{~cpp #include #define MAX 21 int main(){ char odd[MAX],even[MAX],format[20]; int i,j, num; printf("plz input asterisk number(below %d):",MAX); scanf("%d",&num); if( num > MAX ) exit(0); sprintf(format,"%%%ds %%%ds %%%ds %%%ds\n",num,num,num,num); memset(odd,0,MAX); for(i=1,j=num;i<=num;i++,j--){ memset(odd, '*', i); memset(even,'*', j); even[j]=0; printf(format,odd,even,odd,even); } return 0; } }}} === C++ === Bjarne Stroustrup ,Alexander Stepanov는 어떻게 작성하길 원할까? {{{~cpp #include #include using namespace std; inline void print(int& num,string& str){ cout.width(num+1); cout<> num; string asterisks; asterisks.assign(num, '*'); for (int i=1, j=num;i<=num;i++,j--){ string odd = asterisks.substr(0,i); string even = asterisks.substr(0,j); print(num,odd); print(num,even); print(num,odd); print(num,even); cout << endl; } return 0; } }}} 이게 조금더 C++ 다운걸까? {{{~cpp #include #include using namespace std; int main(){ int num; cout << "plz number of asterisk:"; cin >> num; string odd, odd_s, even, even_s; string oddf,evenf; for (int i=1, j=num;i<=num;i++,j--){ oddf = odd.assign(i,'*') + odd_s.assign(j,' '); evenf = even.assign(j,'*')+ even_s.assign(i,' '); cout << oddf << evenf << endl; } return 0; } }}} == zennith == {{{~cpp #include char buffer[] = "* ***** * *****"; const char star = '*'; const char space = ' '; int star_ptr1 = 1; int star_ptr2 = 14; int space_ptr1 = 10; int space_ptr2 = 17; void printBuffer(void) { std::cout << buffer << std::endl; } int main(void) { int i = 5; do { printBuffer(); buffer[star_ptr1++] = buffer[star_ptr2--] = star; buffer[space_ptr1--] = buffer[space_ptr2++] = space; } while(--i); return 0; } }}} 부끄러워라.. * 이런 방법도 있구만, 좋은 생각이다. 오랫만이네 --NeoCoin * 와~~ 남훈이 오빠네.. ^^ - 일정 ---- [빵페이지]