이 자습서에서는 2D 모양을 인쇄하는 프로그램에 대해 설명합니다.
이를 위해 반경, 측면 길이 및 측면 너비 등과 같은 모양을 만드는 데 필요한 다양한 매개변수가 제공됩니다. 그리고 우리의 임무는 두께 없이 그에 따라 모양을 인쇄하는 것입니다.
예시
#include <bits/stdc++.h> using namespace std; void print_circle(int radius){ for (int i = 0; i <= 2 * radius; i++){ for (int j = 0; j <= 2 * radius; j++){ double distance = sqrt((double)(i - radius) * (i - radius) + (j - radius) * (j - radius)); if (distance > radius - 0.5 && distance < radius + 0.5) printf("*"); else printf(" "); } printf("\n"); } } void print_rectangle(int l, int b){ int i, j; for (i = 1; i <= l; i++){ for (j = 1; j <= b; j++) if (i == 1 || i == l || j == 1 || j == b) printf("*"); else printf(" "); printf("\n"); } } void print_triangle(int side){ int i, j; for (i = 1; i <= side; i++){ for (j = i; j < side; j++) printf(" "); for (j = 1; j <= (2 * i - 1); j++){ if (i == side || j == 1 || j == (2 * i - 1)) printf("*"); else printf(" "); } printf("\n"); } } void print_hexagon(int length){ int l, j, i, k; for (i = 1, k = length, l = 2 * length - 1; i < length; i++, k--, l++){ for (j = 0; j < 3 * length; j++) if (j >= k && j <= l) printf("*"); else printf(" "); printf("\n"); } for (i = 0, k = 1, l = 3 * length - 2; i < length; i++, k++, l--){ for (j = 0; j < 3 * length; j++) if (j >= k && j <= l) printf("*"); else printf(" "); printf("\n"); } } void calc_pattern(int choice){ int radius, length, breadth, side; switch (choice){ case 1: radius = 4; print_circle(radius); break; case 2: length = 3, breadth = 8; print_rectangle(length, breadth); break; case 3: side = 6; print_triangle(side); break; case 4: side = 4; print_hexagon(side); break; default: printf("Invalid choice\n"); } } int main(){ int choice = 1; calc_pattern(choice); return 0; }
출력
***** ** ** ** ** * * * * * * ** ** ** ** *****