Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C++ 프로그램으로 문자열을 'X' 형태로 출력하는 방법

문자열이 주어졌을 때, 이를 'X' 형태로 출력하는 프로그램을 만들어 보겠습니다. 아래 이미지를 참고하면 출력 결과를 쉽게 이해할 수 있습니다.

핵심 아이디어는 간단합니다. 하나의 변수(i)는 왼쪽에서 오른쪽 방향으로, 다른 변수(j)는 오른쪽에서 왼쪽 방향으로 대각선 위치를 추적하고, 세 번째 변수(k)는 각 행에서 공백과 문자를 구분하기 위해 사용됩니다.

알고리즘

START
Step 1 -> 함수 void print(string str, int len) 선언
    Loop For int i = 0 and i < len and i++
        Set int j = len-1- i
        Loop For int k = 0 and k < len and k++
            IF k == i || k == j
                Print str[k]
            End
            Else
                Print " "
            End
    End
Step 2 -> main() 함수에서
    Declare string str = "tutorialpoint"
    Set int len = str.size()
    Call print(str, len)
STOP

구현 예제

아래는 위 알고리즘을 C++로 구현한 전체 코드입니다.

#include<iostream>
using namespace std;
void print(string str, int len){
    for (int i = 0; i < len; i++){
        int j = len-1- i;
        for (int k = 0; k < len; k++){
            if (k == i || k == j)
                cout << str[k];
            else
                cout << " ";
        }
        cout << endl;
    }
}
int main (){
    string str = "tutorialpoint";
    int len = str.size();
    print(str, len);
    return 0;
}

동작 원리

  • 외부 루프의 i는 현재 출력 중인 행 번호를 나타냅니다.
  • j = len - 1 - i는 각 행마다 오른쪽 대각선에 해당하는 열 위치를 계산합니다.
  • 내부 루프의 ki 또는 j와 일치하면 해당 위치의 문자를 출력하고, 그렇지 않으면 공백을 출력합니다.

실행 결과

위 프로그램을 실행하면 다음과 같은 X자 형태의 출력 결과를 얻을 수 있습니다.

t                 t
 u               u 
  t             t  
   o           o   
    r         r    
     i       i     
     a       a     
      l     l      
       p   p       
        o o        
         n         
        p p        
       o   o       
      i     i      
     n       n     
    t         t    
   s           s   
  t             t  
 u               u 
t                 t

이처럼 두 개의 대각선 교차 패턴을 활용하면 별도의 복잡한 로직 없이도 간단한 이중 반복문만으로 X자 형태의 문자열 출력을 구현할 수 있습니다.