-
JUNGOL...37일지 2021. 1. 1. 14:40
Language_Code/파일입출력/자가진단1
문제
두 개의 정수를 입력받아 작은 수부터 큰 수까지 모든 정수의 합을 구하여 출력하는 프로그램을 작성하시오.
* 표준입출력방식으로 작성하세요.
입력 예
5 10
출력 예
45
BasicFileProcess01.h
#include <iostream>
BasicFileProcess01.cpp
void BasicFileProcess01::Code() { int var1, var2; std::cin >> var1 >> var2; int beg{ var1 < var2 ? var1 : var2 }; int end{ var1 > var2 ? var1 : var2 }; int sum{ 0 }; while (beg <= end) { sum += beg++; } std::cout << sum; }
Language_Code/파일입출력/자가진단2
문제
10개의 실수를 입력받아 첫 번째 입력 값과 마지막 입력 값의 평균을 반올림하여, 소수 첫째자리까지 출력하는 프로그램을 작성하시오.
* 표준입출력방식으로 작성하세요.
입력 예
15.3 123.5 0.69 85.12 3.0 51.9 100.1 1.58 5.5 10.5
출력 예
12.9
BasicFileProcess02.h
#include <iostream>
BasicFileProcess02.cpp
void BasicFileProcess02::Code() { float arr[10]; for (int i = 0; i < 10; i++) { std::cin >> arr[i]; } float sum{ arr[0] + arr[9] }; float avg{ sum / 2 }; std::cout.precision(1); std::cout.setf(std::ios::fixed); std::cout << avg; }
Language_Code/파일입출력/자가진단3
문제
10명의 학생 이름과 점수를 입력받아 이름과 점수, 등수를 입력받은 순서대로 출력하는 프로그램을 작성하시오.
단, 출력시 "이름", "점수", "등수"는 한 칸의 공백으로 구분을 하며, Name은 4칸(%4s), Score는 5칸(%5d), Rank는 각 4칸(%4d)으로 출력한다.
* 표준입출력방식으로 작성하세요.
입력 예
Hong 90
Lim 85
Park 88
Gong 75
Lee 100
Seo 90
Jang 75
Song 90
Kim 95
Sung 60출력 예
Name Score Rank
Hong 90 3
Lim 85 7
Park 88 6
Gong 75 8
Lee 100 1
Seo 90 3
Jang 75 8
Song 90 3
Kim 95 2
Sung 60 10Hint!
멤버변수에 번호를 추가하여 초기화 했다가 등수를 확정한 후 번호 순으로 다시 정렬하여 출력한다. 또는 자신보다 점수가 높은 개수를 구한 후 1을 더하여 자신의 등수를 구할 수도 있다.
BasicFileProcess03.h
#include <iostream> #include <string> #include <iomanip> using std::string; struct Student { string m_name; int m_score{}; int m_rank{}; int m_number{}; };
BasicFileProcess03.cpp
void BasicFileProcess03::Code() { Student arr[10]; for (int i = 0; i < 10; i++) { std::cin >> arr[i].m_name >> arr[i].m_score; arr[i].m_number = i; } // sort by score for (int i = 1; i < 10; i++) { for (int j = 0; j < 10 - i; j++) { if (arr[j].m_score < arr[j + 1].m_score) { Student temp{ arr[j] }; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } int rank{ 1 }; for (int i = 0; i < 10; ) { int rankAdder{ 1 }; arr[i].m_rank = rank; while (i < 9 && arr[i].m_score == arr[i + 1].m_score) { arr[i + 1].m_rank = rank; i++; rankAdder++; } i++; rank += rankAdder; } // sort by number for (int i = 1; i < 10; i++) { for (int j = 0; j < 10 - i; j++) { if (arr[j].m_number > arr[j + 1].m_number) { Student temp{ arr[j] }; arr[j] = Student{ arr[j + 1] }; arr[j + 1] = temp; } } } std::cout << "Name Score Rank\n"; for (int i = 0; i < 10; i++) { std::cout << std::setw(4) << arr[i].m_name << std::setw(6) << arr[i].m_score << std::setw(5) << arr[i].m_rank << '\n'; } }
Language_Code/파일입출력/자가진단4
문제
공백을 포함한 문자열을 두 번 입력받아 길이가 작은 문자열과 긴 문자열의 순으로 출력하는 프로그램을 작성하시오.
각 문자열의 길이는 100자를 넘지 않는다.
* 표준입출력방식으로 작성하세요.
입력 예
Love, like you've never been hurt.
Live, like today is the lost day to live.
출력 예
Love, like you've never been hurt.
Live, like today is the lost day to live.
BasicFileProcess04.h
#include <iostream> #include <string> using std::string;
BasicFileProcess04.cpp
void BasicFileProcess04::Code() { string str1, str2; std::getline(std::cin, str1); std::getline(std::cin, str2); if (str1.size() < str2.size()) { std::cout << str1 << '\n' << str2; } else { std::cout << str2 << '\n' << str1; } }
Language_Code/파일입출력/자가진단5
문제
100이하의 정수 N을 입력받은 후 공백이 포함된 N행의 문장을 입력받아서 역순으로 출력하는 프로그램을 작성하시오.
각 문장의 길이는 100이하이다.
* 표준입출력방식으로 작성하세요.
입력 예
3
I love korea.
My name is chulgi.
I'm happy.
출력 예
I'm happy.
My name is chulgi.
I love korea.
BasicFileProcess05.h
#include <iostream> #include <string> #include <limits> using std::string;
BasicFileProcess05.cpp
void BasicFileProcess05::Code() { int n; std::cin >> n; string* arr = new string[n]; std::cin.clear(); std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); for (int i = 0; i < n; i++) { std::getline(std::cin, arr[i]); } for (int i = n - 1; i >= 0; i--) { std::cout << arr[i] << '\n'; } delete[] arr; }
Language_Code/파일입출력/자가진단6
문제
원의 둘레의 길이를 입력받아 반지름의 길이를 출력하는 프로그램을 작성하시오.
단, 원주율은 3.14로 하고 출력은 소수 세째자리에서 반올림하여 둘째자리까지 출력 한다.
둘레의 길이가 0 이면 종료한다.
* 표준입출력방식으로 작성하세요.
입력 예
31.4
62.8
0출력 예
5.00
10.00Hint!
원의 둘레(c) 공식은 다음과 같다
c = 지름의 길이 * 원주율 = 2 * 반지름 * 원주율
BasicFileProcess06.h
#include <iostream>
BasicFileProcess06.cpp
void BasicFileProcess06::Code() { const double PI = 3.14; std::cout.precision(2); std::cout.setf(std::ios::fixed); double round; while (true) { std::cin >> round; if (round == 0) { break; } double radius{ round / (2 * PI) }; std::cout << radius << '\n'; } }
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)