일지

JUNGOL...35

niamdank 2020. 12. 19. 13:24

Language_Code/포인터/자가진단1


문제                                            

정수형 변수와 포인터 변수를 선언하고 정수를 입력받아 포인터 변수를 이용하여 정수형 변수의 메모리 주소와 값을 출력하는 프로그램을 작성하시오.

 

주소 출력은 "%#p"를 이용하시오. 아래는 메모리 주소가 "0X11110000"이라고 가정했을 때이다.

 

입력 예                                        

20

 

출력 예                                        

0X11110000 20

 

Hint!

포인터 개념 Lecture


BasicPointer01.h

#include <iostream>

 

BasicPointer01.cpp

void BasicPointer01::Code()
{
	int var;

	std::cin >> var;

	int* p{ &var };

	std::cout << "0x" << p << ' ' << *p;
}

 

Language_Code/포인터/자가진단2


문제                                            

정수형 포인터를 이용하여 값을 입력받고 입력받은 값을 10으로 나눈 몫과 나머지를 출력하는 프로그램을 작성하시오.

 

입력 예                                        

123

 

출력 예                                        

12...3


BasicPointer02.h

#include <iostream>

 

BasicPointer02.cpp

void BasicPointer02::Code()
{
	int* p = new int;

	std::cin >> *p;

	std::cout << *p / 10 << "..." << *p % 10;

	delete p;
}

 

Language_Code/포인터/자가진단3


문제                                            

포인터 변수 두 개를 이용하여 두 수를 입력받고 사칙 연산을 수행하여 출력하는 프로그램을 작성하시오.

 

입력 예                                        

35 6

 

출력 예                                        

35 + 6 = 41
35 - 6 = 29
35 * 6 = 210
35 / 6 = 5


BasicPointer03.h

#include <iostream>

 

BasicPointer03.cpp

void BasicPointer03::Code()
{
	int* p1 = new int;
	int* p2 = new int;

	std::cin >> *p1 >> *p2;

	std::cout << *p1 << " + " << *p2 << " = " << *p1 + *p2 << '\n';
	std::cout << *p1 << " - " << *p2 << " = " << *p1 - *p2 << '\n';
	std::cout << *p1 << " * " << *p2 << " = " << *p1 * *p2 << '\n';
	std::cout << *p1 << " / " << *p2 << " = " << *p1 / *p2;

	delete p1, p2;
}

 

Language_Code/포인터/자가진단4


문제                                            

5개짜리 정수형 배열을 선언하고 포인터 변수에 저장한 후 포인터 변수를 이용하여 입력을 받은 후 홀수번째 입력값을 출력하는 프로그램을 작성하시오.

 

입력 예                                        

1 15 23 9 12

 

출력 예                                        

1 23 12


BasicPointer04.h

#include <iostream>

 

BasicPointer04.cpp

void BasicPointer04::Code()
{
	int arr[5];
	int* p{ arr };

	for (int i = 0; i < 5; i++)
	{
		std::cin >> p[i];
	}

	for (int i = 1; i <= 5; i++)
	{
		if (i % 2 == 1)
		{
			std::cout << p[i - 1] << ' ';
		}
	}
}

 

Language_Code/포인터/자가진단5


문제                                            

실수 5개를 원소로 하는 배열을 선언하고 포인터 변수를 이용하여 입력과 출력을 실행하는 프로그램을 작성하시오 출력은 반올림하여 소수 첫째자리까지 출력하는 것으로 한다.

 

입력 예                                        

10 25.3 1.05 0.78 100

 

출력 예                                        

10.0 25.3 1.1 0.8 100.0


BasicPointer05.h

#include <iostream>

 

BasicPointer05.cpp

void BasicPointer05::Code()
{
	double arr[5];
	double* p{ arr };

	for (int i = 0; i < 5; i++)
	{
		std::cin >> p[i];
	}

	std::cout.precision(1);
	std::cout.setf(std::ios::fixed);

	for (int i = 0; i < 5; i++)
	{
		std::cout << p[i] << ' ';
	}
}

 

Language_Code/포인터/자가진단6


문제                                            

배열의 크기를 입력받아 입력받은 크기만큼 실수 배열을 생성하고 배열의 원소를 입력받은 후 입력받은 자료 및 합과 평균을 반올림하여 소수 둘째자리까지 출력하는 프로그램을 작성하시오.

 

입력 예                                        

4
15 23.6 100.35 0.388

 

출력 예                                        

15.00 23.60 100.35 0.39
hap : 139.34
avg : 34.83

 

Hint!

입력받은 값을 소수 둘째 자리까지 출력하는 것이고 합계와 평균은 입력 받은 값으로 계산 후 소수 둘째 자리까지 출력하는 것이다.


BasicPointer06.h

#include <iostream>

 

BasicPointer06.cpp

void BasicPointer06::Code()
{
	int n;

	std::cin >> n;

	double* arr = new double[n];

	double sum{ 0 };
	for (int i = 0; i < n; i++)
	{
		std::cin >> arr[i];
		sum += arr[i];
	}

	double avg{ sum / n };

	std::cout.precision(2);
	std::cout.setf(std::ios::fixed);

	for (int i = 0; i < n; i++)
	{
		std::cout << arr[i] << ' ';
	}
	std::cout << '\n';

	std::cout << "hap : " << sum << '\n';
	std::cout << "avg : " << avg;

	delete[] arr;
}

 

Language_Code/포인터/자가진단7


문제                                            

배열의 크기를 입력받아 입력받은 크기만큼 배열에 정수를 입력받고 내림차순으로 정렬하여 출력하는 프로그램을 작성하시오.

 

입력 예                                        

4
15 23 100 38

 

출력 예                                        

100 38 23 15


BasicPointer07.h

#include <iostream>

 

BasicPointer07.cpp

void BasicPointer07::Code()
{
	int n;

	std::cin >> n;

	int* arr = new int[n];

	for (int i = 0; i < n; i++)
	{
		std::cin >> arr[i];
	}

	for (int i = 1; i < n; i++)
	{
		for (int j = 0; j < n - i; j++)
		{
			if (arr[j] < arr[j + 1])
			{
				int temp{ arr[j] };
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}

	for (int i = 0; i < n; i++)
	{
		std::cout << arr[i] << ' ';
	}
}

 

NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)

 

NadanKim/CodingTest_JUNGOL

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

github.com