ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JUNGOL...34
    일지 2020. 12. 17. 11:30

    Language_Code/구조체/형성평가1


    문제                                            

    이름과 전화번호, 주소를 멤버로하는 구조체를 정의하여 1개의 자료를 입력받고 출력하는 프로그램을 작성하시오.
    각각의 길이는 100자 이하다.

     

    입력 예                                        

    Lim 1234-5678 Seoul

     

    출력 예                                        

    name : Lim 
    tel : 1234-5678 
    addr : Seoul

     

    Hint!

    전화번호는 문자열로 처리하는 것이 편리하고 일반적이다.


    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 204

     

    Hint!

    이름과 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)

     

    NadanKim/CodingTest_JUNGOL

    JUNGOL 코딩 테스트를 위한 저장소. Contribute to NadanKim/CodingTest_JUNGOL development by creating an account on GitHub.

    github.com

     

    댓글

Designed by Tistory.