-
JUNGOL...34일지 2020. 12. 17. 11:30
Language_Code/구조체/형성평가1
문제
이름과 전화번호, 주소를 멤버로하는 구조체를 정의하여 1개의 자료를 입력받고 출력하는 프로그램을 작성하시오.
각각의 길이는 100자 이하다.입력 예
Lim 1234-5678 Seoul
출력 예
name : Lim
tel : 1234-5678
addr : SeoulHint!
전화번호는 문자열로 처리하는 것이 편리하고 일반적이다.
FormativeStruct01.h
#include <iostream> #include <string> using std::string; struct Person { string m_name; string m_phone; string m_address; };
FormativeStruct01.cpp
void FormativeStruct01::Code() { Person var; std::cin >> var.m_name >> var.m_phone >> var.m_address; std::cout << "name : " << var.m_name << '\n'; std::cout << "tel : " << var.m_phone << '\n'; std::cout << "addr : " << var.m_address; }
Language_Code/구조체/형성평가2
문제
이름과 전화번호, 주소를 멤버로하는 구조체를 정의하고 3명의 자료를 입력받은 후 사전순으로 이름이 가장 빠른 사람의 자료를 출력하는 프로그램을 작성하시오.
** 자기주도 C언어 7판 이전 교재는 출력예가 오류입니다.
입력 예
Lim 1234-5678 Seoul
Hong 2345-6789 Gangwon
Sung 3456-7890 Gyeonggi출력 예
name : Hong
tel : 2345-6789
addr : Gangwon
FormativeStruct02.h
#include <iostream> #include <string> using std::string; struct Person { string m_name; string m_phone; string m_address; };
FormativeStruct02.cpp
void FormativeStruct02::Code() { Person arr[3]; for (int i = 0; i < 3; i++) { std::cin >> arr[i].m_name >> arr[i].m_phone >> arr[i].m_address; } Person& fastest{ arr[0] }; for (int i = 1; i < 3; i++) { if (fastest.m_name > arr[i].m_name) { fastest = arr[i]; } } std::cout << "name : " << fastest.m_name << '\n'; std::cout << "tel : " << fastest.m_phone << '\n'; std::cout << "addr : " << fastest.m_address; }
Language_Code/구조체/형성평가3
문제
직사각형의 왼쪽 아래의 좌표(x, y)와 오른쪽 위의 좌표(x2, y2)를 저장할 수 있는 구조체 자료형을 만들고 두 개의 직사각형 자료를 입력받아 두 직사각형을 포함하는 최소의 직사각형 자료를 구하여 구조체 변수에 저장하고 출력하는 프로그램을 작성하시오. 단, 모든 입력값은 100을 넘지 않는다.
입력 예
1 1 6 5
2 0 7 3출력 예
1 0 7 5
FormativeStruct03.h
#include <iostream> struct Point { int x, y; };
FormativeStruct03.cpp
void FormativeStruct03::Code() { Point lb1, rt1; Point lb2, rt2; std::cin >> lb1.x >> lb1.y >> rt1.x >> rt1.y; std::cin >> lb2.x >> lb2.y >> rt2.x >> rt2.y; Point minLb; minLb.x = (lb1.x < lb2.x ? lb1.x : lb2.x); minLb.y = (lb1.y < lb2.y ? lb1.y : lb2.y); Point maxRt; maxRt.x = (rt1.x > rt2.x ? rt1.x : rt2.x); maxRt.y = (rt1.y > rt2.y ? rt1.y : rt2.y); std::cout << minLb.x << ' ' << minLb.y << ' ' << maxRt.x << ' ' << maxRt.y; }
Language_Code/구조체/형성평가4
문제
어떤 학생의 키는 아버지와 어머니의 키의 평균보다 5cm 크고 몸무게는 아버지와 어머니의 몸무게의 평균보다 4.5kg 가볍다고 한다.
키와 몸무게를 멤버변수로 갖는 구조체를 정의하고 아버지와 어머니의 키와 몸무게를 입력받아 학생의 키와 몸무게를 출력하는 프로그램을 작성하시오.
키는 정수미만 버림하고 몸무게는 반올림하여 소수 첫째자리까지 나타낸다.
입력 예
175 68.8
166 56.4출력 예
height : 175cm
weight : 58.1kg
FormativeStruct04.h
#include <iostream> struct Person { int height; float weight; };
FormativeStruct04.cpp
void FormativeStruct04::Code() { Person father, mother; std::cin >> father.height >> father.weight; std::cin >> mother.height >> mother.weight; Person child; child.height = (father.height + mother.height) / 2 + 5; child.weight = (father.weight + mother.weight) / 2 - 4.5f; std::cout.precision(1); std::cout.setf(std::ios::fixed); std::cout << "height : " << child.height << "cm\n"; std::cout << "weight : " << child.weight << "kg"; }
Language_Code/구조체/형성평가5
문제
10 이하의 정수 n을 입력받은 후 n명의 이름(영문자 20자 이하)과 세 과목의 점수를 입력받아 총점이 높은 순으로 정렬하여 출력하는 프로그램을 작성하시오.
입력 예
3
Chung 50 65 89
Nolbu 100 38 99
Hungbu 85 95 77출력 예
Hungbu 85 95 77 257
Nolbu 100 38 99 237
Chung 50 65 89 204Hint!
이름과 3과목의 성적 이외에 총점까지 포함하는 구조체를 정의하면 편리하다.
FormativeStruct05.h
#include <iostream> #include <string> using std::string; struct Person { string m_name; int m_score1; int m_score2; int m_score3; int m_sumOfScore; };
FormativeStruct05.cpp
void FormativeStruct05::Code() { int n; std::cin >> n; Person* arr = new Person[n]; for (int i = 0; i < n; i++) { std::cin >> arr[i].m_name >> arr[i].m_score1 >> arr[i].m_score2 >> arr[i].m_score3; arr[i].m_sumOfScore = arr[i].m_score1 + arr[i].m_score2 + arr[i].m_score3; } for (int i = 1; i < n; i++) { for (int j = 0; j < n - i; j++) { if (arr[j].m_sumOfScore < arr[j + 1].m_sumOfScore) { Person temp{ arr[j] }; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < n; i++) { std::cout << arr[i].m_name << ' ' << arr[i].m_score1 << ' ' << arr[i].m_score2 << ' ' << arr[i].m_score3 << ' ' << arr[i].m_sumOfScore << '\n'; } delete[] arr; }
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)