2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

프로그래밍언어문법(C,C++,Python,JAVA)

2-6.공간의 마술사

원당컴1 2024. 5. 8. 09:50

목차 - https://wondangcom.tistory.com/2797

 

프로그래밍언어 문법 목차

I. 서론 1. 프로그래밍 언어 이론 1.1 프로그래밍 언어란? 프로그래밍 언어가 무엇인지 살펴 본다. 링크 - https://wondangcom.tistory.com/1615 1.1 프로그래밍 언어란? 목표 프로그래밍 언어가 무엇인지 알아

wondangcom.tistory.com

문제: “공간의 마술사”

당신은 프로그래밍의 세계에서 공간을 조종하는 마술사가 되었습니다.

사용자는 숫자와 문자열을 마음속으로 생각하고, 당신의 프로그램은 그것들을 입력받아 각각 10칸의 공간을 확보하여 화면에 정렬하여 출력해야 합니다.

이 마법 같은 공간 조정을 위한 프로그램을 작성해 보세요.

요구 사항:

  1. 프로그램은 사용자에게 하나의 숫자와 하나의 문자열을 생각하라고 안내합니다.
  2. 사용자가 숫자와 문자열을 입력하면, 프로그램은 각각 10칸의 공간을 확보하여 출력합니다.
  3. 숫자는 오른쪽 정렬, 문자열은 왼쪽 정렬로 표시합니다.
  4. 입력과 출력은 명확하고 사용자 친화적이어야 합니다.

 

1. C언어

#include <stdio.h>

int main() {
    int number;
    char text[100]; // 문자열을 저장할 충분한 크기의 배열을 선언합니다.

    // 사용자에게 숫자와 문자열 입력을 요청합니다.
    printf("하나의 숫자와 하나의 문자열을 생각해보세요.\n");
    printf("생각한 숫자를 입력해주세요: ");
    scanf("%d", &number);
    printf("생각한 문자열을 입력해주세요: ");
    scanf("%s", text);
    
    // 입력받은 숫자와 문자열을 각각 10칸의 공간을 확보하여 출력합니다.
    printf("%10d %-10s\n", number, text);

    return 0;
}

10칸의 공간을 확보하여 출력하는 서식 문자는 정수형인 경우 %10d,문자열인 경우 %10s 와 같이 출력하면 10칸을 확보하여 오른쪽 정렬하여 출력합니다. %(숫자)(서식문자) 일때 숫자 만큼 공간 확보하여 오른쪽 정렬하여 출력 합니다.

왼쪽 정렬 하는 경우에는 -(음수) 값으로 서식문자를 지정하면 왼쪽 정렬이 됩니다.

 

2. C++

#include <iostream>
#include <iomanip> // setw를 사용하기 위해 필요합니다.

using namespace std;

int main() {
    int number;
    string text;

    // 사용자에게 숫자와 문자열 입력을 요청합니다.
    cout << "하나의 숫자와 하나의 문자열을 생각해보세요.\n";
    cout << "생각한 숫자를 입력해주세요: ";
    cin >> number;
    cout << "생각한 문자열을 입력해주세요: ";
    cin.ignore(); // 숫자 입력 후 남은 개행 문자를 무시합니다.
    getline(cin, text); // 공백을 포함한 문자열을 입력받습니다.
    
    // 입력받은 숫자와 문자열을 각각 10칸의 공간을 확보하여 출력합니다.
    // 숫자는 오른쪽 정렬, 문자열은 왼쪽 정렬로 표시합니다.
    cout << setw(10) << number << " " << left << setw(10) << text << endl;

    return 0;
}

setw를 사용하여 출력할 때 공간을 확보하여 디폴트로 오른쪽 정렬하여 출력합니다.

왼쪽 정렬하여 출력 할 때는 left를 사용합니다.

또한 C언어의 printf 문을 사용하여 출력이 가능합니다.

 

3. Java

import java.util.Scanner;

public class SpaceMagician {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number;
        String text;

        // 사용자에게 숫자와 문자열 입력을 요청합니다.
        System.out.println("하나의 숫자와 하나의 문자열을 생각해보세요.");
        System.out.print("생각한 숫자를 입력해주세요: ");
        number = scanner.nextInt();
        scanner.nextLine(); // 숫자 입력 후 남은 개행 문자를 무시합니다.
        System.out.print("생각한 문자열을 입력해주세요: ");
        text = scanner.nextLine();
        
        // 입력받은 숫자와 문자열을 각각 10칸의 공간을 확보하여 출력합니다.
        // 숫자는 오른쪽 정렬, 문자열은 왼쪽 정렬로 표시합니다.
        System.out.printf("%10d %-10s\n", number, text);

        scanner.close();
    }
}

Java에서는 printf를 이용하여 C언어와 같이 서식문자를 사용하여 공간 확보를 할 수 있습니다.

 

4. Python

# 사용자에게 숫자와 문자열 입력을 요청합니다.
number = int(input("하나의 숫자를 생각해보세요: "))
text = input("하나의 문자열을 생각해보세요: ")

# 입력받은 숫자와 문자열을 각각 10칸의 공간을 확보하여 출력합니다.
# 숫자는 오른쪽 정렬, 문자열은 왼쪽 정렬로 표시합니다.
print(f"{number:>10} {text:<10}")

포맷 문자열을 사용하여 왼쪽(>) 오른쪽(<) 정렬 방향을 정할 수 있습니다.

또한 C언어와 마찬가지로 서식문자를 사용해서 출력이 가능합니다.

 

요약

10칸 공간 확보하여 출력하는 방법

C언어 : %10d,%10s와 같이 앞에 숫자를 붙여 주면 숫자만큼 공간을 확보하여 오른쪽 정렬한다. 왼쪽 정렬시에는 음수값을 붙여 준다.

C++ : setw(10) 으로 공간 확보를 한다. 왼쪽 정렬 시 left를 사용한다.

Java : printf문으로 서식문자를 사용하여 출력한다.(C언어와 동일)

Python : 포맷문자열 사용시 >(오른쪽 정렬), <(왼쪽 정렬) 과 같이 사용한다.

 

인천 검단 원당컴퓨터 학원(T 032-565-5497)

#정보올림피아드

#검단신도시코딩

#원당동코딩

#마전동코딩

#왕길동코딩

#당하동코딩

#아라동코딩

#풍무동코딩

#불로동코딩

#검단동코딩

#검암동코딩

사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기

'프로그래밍언어문법(C,C++,Python,JAVA)' 카테고리의 다른 글

2-5. 말하는 거울  (4) 2024.05.03
2-4. 단어의 숲을 거닐다.  (10) 2024.04.26
2-3. 실수의 발견  (5) 2024.04.24
2-2. 문자의 마법사  (7) 2024.04.12
2.1 - 숫자의 비밀  (8) 2024.04.05