JUNGOL...37
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 10
Hint!
멤버변수에 번호를 추가하여 초기화 했다가 등수를 확정한 후 번호 순으로 다시 정렬하여 출력한다. 또는 자신보다 점수가 높은 개수를 구한 후 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.00
Hint!
원의 둘레(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)
NadanKim/CodingTest_JUNGOL
JUNGOL 코딩 테스트를 위한 저장소. Contribute to NadanKim/CodingTest_JUNGOL development by creating an account on GitHub.
github.com