쉬움(6)
-
#11 - 제곱근(2) [쉬움]
문제직각삼각형에서 직각을 이루는 두 변의 길이를 입력받고, 함수를 통해 빗변의 길이를 반환값으로 돌려받아 출력하는 프로그램을 작성하시오. 이 함수의 매개변수 및 반환값은 double로 하시오. 이전 프로그램의 경우, 화면에 출력된 값이 실제 빗변의 길이와 다소 오차가 존재했다. 그것은 double 자료형이 제한된 용량을 갖고 있고, 또 실제로 화면에 출력할 수 있는 정도에도 분명한 한계가 있기 때문이다. 무한한 성격의 실수를 표현해야하기 때문에 발생하는 불가피한 한계에도 불구하고 화면에 출력된 값을 충분히 신뢰할 수 있기 위해서는 적어도 출력값이 double의 유효숫자 안에서만 표현되어야 한다. 다음은 이러한 한계점을 보완하기 위해 출력 방법을 보완한 프로그램이다. 핵심 아이디어ㅡ 제곱과 제곱근ㅡ 실수와..
2019.01.06 -
#9 - 함수 [쉬움]
문제피보나치 수열은 1, 1, 2, 3, 5, 8, 13, 21 ... 로 다음과 같이 정의한다. 임의의 양의 정수 n에 대하여 f(1)=1, f(2)=1이고, n≥3일 때, f(n)=f(n-1) + f(n-2) 이다. 입력받은 임의의 정수 n에 대하여 n번째 피보나치 수열의 값을 구하는 함수 f(n)이 값을 반환하기까지 호출되는 횟수를 출력하는 프로그램을 작성하시오. 핵심 아이디어 ㅡ 재귀함수 활용 ㅡ 정적(static) 변수 활용 ※ 결과 ㅡ 좌측은 main 함수를 한 번씩 일일이 호출한 결과를 모아 정리한 것이고, ㅡ 우측은 main 함수 안을 while(1)로 묶어 반복 호출한 결과이다. ㅡ line 14: 수열의 값을 구하는 과정과는 무관하게 '함수 호출 횟수의 출력' 때문에 count1 함수를..
2019.01.02 -
#6 - 제어문 [쉬움]
문제1부터 100까지의 하나의 난수를 발생하여 그 수를 맞추는 프로그램을 작성하시오. 1. 난수 발생반┌ 2. 난수 추측 │ 3. 추측한 수와 난수를 비교복└ 4. 범위 재설정 *이 문제에는 생각보다 많은 기본 개념이 활용된다.** 자세한 개념에 대해서는 이후 난수를 다루는 문제에서 나눠서 천천히 설명하겠다. 난수란 특정한 배열 순서나 규칙을 가지지 않는 임의의 수를 말한다. 하지만 컴퓨터가 생성한 난수는 대부분 엄밀한 의미에서 예측이 가능하고, 복사할 수 있기 때문에 특별히 모조(pseudo) 난수라 한다. C언어에서 난수를 생성하는 라이브러리 함수인 rand는 함수의 반환값이 int형이다. 인자 부분은 void인데 이것은 이 함수의 인자가 없다는 것을 의미한다. 함수 rand는 0부터 32767 사이..
2018.12.29 -
#5 - % 연산자 [쉬움]
문제1보다 큰 양의 정수를 입력받아 소수인지를 판별하는 프로그램을 작성하시오. ex) 입력한 23은 소수입니다. 소수의 정의는 1과 자기 자신을 제외한 나머지 수로 나누어서 나누어지지 않은 수를 말한다. * while문의 조건문으로 1은 'TRUE'를 의미하며, 항상 조건이 만족되어 break문을 진행하기 전까진 계속 while 반복문을 시행한다는 것이다.** if문으로 조건 (num > 1)을 걸어 1보다 큰 정수를 입력했을 때만 프로그램을 진행하고, 아닌 경우 오류 메세지를 출력하도록 할 수도 있다.*** k는 2부터 시작해서 num - 1가 될 때까지 계속 num에 % 연산자를 수행한다. 그 결과가 0이 되는 경우 바로 소수가 아님을 알 수 있다.**** 코딩은 전혀 어렵지 않지만, 수학적 개념에 ..
2018.12.29 -
#4 - 문자의 정렬 [쉬움]*
입력받은 문자를 배열에 저장하고 정렬하는 방법 문제영문자 3개를 입력받고, 이 중 알파벳 순서가 가장 먼저인 영문자를 출력하는 프로그램을 작성하시오. 우선 알파벳 순서를 비교하기 위해서는 ASCII 코드의 개념을 알아야 한다. http://www.unicode.org/charts/PDF/U0000.pdf 다음 링크의 표에 제시된 것처럼 각 문자는 그에 맞는 코드를 가지고 있다.사용자는 코드의 크기를 비교하는 것으로 문자의 순서를 비교할 수 있다.예를 들어, 알파벳 'a'와 'b'는 16진법으로 61, 62이므로 숫자가 더 작은 문자의 순서가 더 먼저임을 알 수 있다. 기본적으로 main함수에서 scanf문을 통해 3개의 문자열을 ch배열에 저장하는 것으로 시작한다.예를 들어, kor을 입력하면 ch[0]..
2018.12.28 -
#2 - Bubble sort [쉬움]
배열의 정렬과 제어문의 활용 문제세 변의 길이를 실수형으로 입력받아 삼각형의 종류를 출력하는 프로그램을 작성하시오.(단, 직각삼각형, 정삼각형, 이등변삼각형 이외의 삼각형은 모두 일반삼각형으로 칭하고, 삼각형을 만들 수 없는 경우도 고려해야 한다.) 삼각형이 될 수 없는 조건 : 한 변의 길이가 나머지 두 변의 길이의 합보다 길다.정삼각형의 조건 : 세 변의 길이가 모두 같다.직각삼각형의 조건 : 가장 긴 한 변의 길이의 제곱이 나머지 변 각각의 제곱의 합과 같다.이등변삼각형의 조건 : 어느 두 변의 길이가 서로 같다. main 함수를 통해 알 수 있듯이, 크게 세 함수를 거쳐 삼각형의 종류를 판별할 수 있다. 1. getArray 함수- 세 변의 길이(실수형)를 사용자로부터 입력받아 배열에 저장하는 함..
2018.12.25