263p
Programming
1. 주어진 정수의 약수를 모두 찾아내는 함수 get_divisor()를 작성하여보자. 만약 8이 주어지면 1, 2, 4, 8을 화면에 출력하여야 한다. 이 함수를 테스트하기 위한 main()를 작성한다.
#include <stdio.h> void get_divisor(int a); void main() { int x; printf("약수를 구할 값을 입력해주세요 :"); scanf_s("%d", &x); get_divisor(x); } void get_divisor(int a) { int i; for (i = 1; i <= a;i++){ if (a%i == 0) printf("%d ", i); } printf("\n"); } |
2. 주어진 정수가 소수(prime number)인지를 검사하는 함수 prime()을 작성하여보자. 이 함수를 이용하여 1부터 100사이에 존재하는 소수들을 모두 출력한다.
hint. 소수는 1과 자기 자신을 제외한 약수를 가지면 안된다. 따라서 만약 정수 n이 소수인지를 검사하려면 2부터 n-1까지의 숫자로 n을 나누어 떨어지지 않으면 소수이다.
#include <stdio.h> void prime(int a); void main() { int a; for (a = 1; a <= 100; a++) { prime(a); } scanf_s("%d", &a); } void prime(int a) { int i,b=0; for (i = 1; i < a;i++){ if (a%i == 0)b++; } if (b==1) printf("%d \n",a); } |
3. 거듭제곱을 계산하는 함수를 작성하여보자. 정수 n과 k를 받아서 n^k을 계산하는 함수 ipower() 함수를 작성한다. 이 함수를 호출하여 3^0부터 3^10까지의 값을 테이블의 형태로 출력하는 프로그램을 작성한다.
#include <stdio.h> void ipower(int n,int k); void main() { int n, k; for (n = 3, k = 0; k <= 10; k++) { ipower(n, k); } scanf_s("%d", &n); } void ipower(int n, int k) { int i,power=1; for (i = 0; i < k; i++) power=power* n; printf("%d ", power); } |
4. 두 점 사이의 거리를 계산하는 함수를 작성하여보자. 2차원 공간에서 두 점 (x1, y1)과 (x2, y2) 사이의 거리를 계산하는 dist_2d()를 작성한다. 다음과 같은 두 점 사이의 거리를 계산하는 공식을 사용하여라.
d = √((x1-x2)²+(y1-y2)²)
#include <stdio.h> #include <math.h> double dist_2d(double x1,double y1,double x2,double y2); void main() { double x1, x2, y1, y2; printf("첫번째 점의 위치를 입력해주세요"); scanf_s("%lf %lf", &x1, &y1); printf("두번째 점의 위치를 입력해주세요"); scanf_s("%lf %lf", &x2, &y2); printf("두 점사이 거리는 %f입니다.", dist_2d(x1, y1, x2, y2)); } double dist_2d(double x1, double y1, double x2, double y2) { return sqrt(((x1 - x2)*(x1 - x2)) + ((y1 - y2)*(y1 - y2))); } |
5. 주차장의 요금을 계산하여보자. 주차장에서 최초의 2시간은 3000원 이다. 최초 2시간 이후에는 1시간당 2000원의 주차료가 부과된다. 단, 주차료는 하루 24시간에 6000원을 넘지 않는다. 이 주차장에서 주차 시간이 주어지면 주차료를 계산하는 프로그램을 작성하여보자. 단, 함수를 사용하여 프로그램을 작성하여야 한다. 함수 이름은 cal_parking_charge()라고 하고, 주차 시간을 나타내는 하나의 매개변수 time 을 받는다
#include <stdio.h> void cal_parking_charge(int time); void main() { int time; printf("주차한 시간을 입력해주세요(분)"); scanf_s("%d", &time); cal_parking_charge(time); scanf_s("%d", &time); } void cal_parking_charge(int time) { int a=3000; if (time > 120) { a = 2000 + (((time - 120) / 60) + 1) * 1000; } printf("주차료는 %d원 입니다.", a); } |
'Solution > C언어 콘서트' 카테고리의 다른 글
C언어 콘서트 - 제7장: 함수 연습문제 (7/8) (0) | 2015.01.24 |
---|---|
C언어 콘서트 - 제7장: 함수 연습문제 (6/8) (2) | 2014.07.30 |
C언어 콘서트 - 제7장: 함수 연습문제 (4/8) (8) | 2014.06.23 |
C언어 콘서트 - 제7장: 함수 연습문제 (3/8) (0) | 2014.06.22 |
C언어 콘서트 - 제7장: 함수 연습문제 (2/8) (0) | 2014.06.21 |