문제
for 루프를 사용하여 이름을 가운데에 두고 하트 모양의 패턴을 인쇄하는 프로그램을 작성하십시오.
해결책
사용자는 별이 인쇄되어야 하는 행의 수와 함께 중앙에 인쇄되어야 하는 이름을 입력해야 합니다.
알고리즘
for 루프를 사용하여 하트 패턴으로 이름을 출력하려면 아래의 알고리즘을 참조하십시오.
1단계 - 변수를 선언합니다.
2단계 - 런타임 시 중앙에 인쇄되어야 하는 이름을 읽습니다.
3단계 - 행 수를 읽습니다.
4단계 - 이름의 길이를 찾습니다.
5단계 - 하트 윗부분을 인쇄합니다.
6단계 - 하트 하단을 인쇄합니다.
7단계 - 화면에 이름을 인쇄합니다.
예시
다음은 for 루프를 사용하여 이름을 하트 패턴으로 출력하는 C 프로그램입니다 -
#include <stdio.h> #include <string.h> int main(){ int i, j, n; char name[50]; int len; printf("Enter your name: "); gets(name); printf("Enter no of rows: "); scanf("%d", &n); len = strlen(name); // Print upper part of the heart shape with stars for(i=n/2; i<=n; i+=2){ for(j=1; j<n-i; j+=2){ printf(" "); } for(j=1; j<=i; j++){ printf("*"); } for(j=1; j<=n-i; j++){ printf(" "); } for(j=1; j<=i; j++){ printf("*"); } printf("\n"); } // Prints lower triangular part with stars for(i=n; i>=1; i--){ for(j=i; j<n; j++){ printf(" "); } // Print the name on screen if(i == n){ for(j=1; j<=(n * 2-len)/2; j++){ printf("*"); } printf("%s", name); for(j=1; j<(n*2-len)/2; j++){ printf("*"); } }else{ for(j=1; j<=(i*2)-1; j++){ printf("*"); } } printf("\n"); } return 0; }
출력
위의 프로그램이 실행되면 다음과 같은 출력을 생성합니다 -
Enter your name: Tutorials POint Enter no of rows: 10 ***** ***** ******* ******* ********* ********* **Tutorials POint* ***************** *************** ************* *********** ********* ******* ***** *** *