목차 - https://wondangcom.tistory.com/2797
문제: “공간의 마술사”
당신은 프로그래밍의 세계에서 공간을 조종하는 마술사가 되었습니다.
사용자는 숫자와 문자열을 마음속으로 생각하고, 당신의 프로그램은 그것들을 입력받아 각각 10칸의 공간을 확보하여 화면에 정렬하여 출력해야 합니다.
이 마법 같은 공간 조정을 위한 프로그램을 작성해 보세요.
요구 사항:
- 프로그램은 사용자에게 하나의 숫자와 하나의 문자열을 생각하라고 안내합니다.
- 사용자가 숫자와 문자열을 입력하면, 프로그램은 각각 10칸의 공간을 확보하여 출력합니다.
- 숫자는 오른쪽 정렬, 문자열은 왼쪽 정렬로 표시합니다.
- 입력과 출력은 명확하고 사용자 친화적이어야 합니다.
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)
#정보올림피아드
#검단신도시코딩
#원당동코딩
#마전동코딩
#왕길동코딩
#당하동코딩
#아라동코딩
#풍무동코딩
#불로동코딩
#검단동코딩
#검암동코딩
'프로그래밍언어문법(C,C++,Python,JAVA)' 카테고리의 다른 글
3.1 산술 연산자 (7) | 2024.05.24 |
---|---|
2.7 두명의 실수 왕자 (6) | 2024.05.21 |
2-5. 말하는 거울 (4) | 2024.05.03 |
2-4. 단어의 숲을 거닐다. (10) | 2024.04.26 |
2-3. 실수의 발견 (5) | 2024.04.24 |