본문 바로가기

C

(24)
[C] 코딩도장 68 : 함수 포인터 사용하기 68.5 심사문제: 반환값과 매개변수가 있는 함수 포인터 만들기 #define _CRT_SECURE_NO_WARNINGS #include #include int add(int *a, int *b) { return *a + *b; } int sub(int *a, int *b) { return *a - *b; } int mul(int *a, int *b) { return *a * *b; } int div(int *a, int *b) { return *a / *b; } int main() { char funcName[10]; int num1, num2; scanf("%s %d %d", funcName, &num1, &num2); int (*fp)(int*, int*) = NULL; if (strcmp(func..
[C] 코딩도장 67 : 함수에서 재귀호출 사용하기 67.6 심사문제: 재귀호출로 피보나치 수 구하기 #define _CRT_SECURE_NO_WARNINGS #include int fib(int num1) { if (num1 == 0 || num1 == 1) // 피보나치 수의 시작에 도달하면 값 반환 return num1; else return fib(num1-1) + fib(num1-2); } int main() { int num1; scanf("%d", &num1); printf("%d\n", fib(num1)); return 0; } 67.7 심사문제: 재귀호출로 1부터 n까지 합 구하기 #define _CRT_SECURE_NO_WARNINGS #include int sum(int n) { if (n == 1) return 1; return n ..
[C] 코딩도장 66 : 함수에서 가변 인자 사용하기 66.6 심사문제: 가변 인자의 합 구하기 #define _CRT_SECURE_NO_WARNINGS #include #include int sum(int args, ...) { int result = 0; va_list ap; va_start(ap, args); for (int i = 0; i < args; i++) { result += va_arg(ap, int); } va_end(ap); return result; } int main() { int num1, num2; int num3, num4, num5; scanf("%d %d", &num1, &num2); scanf("%d %d %d", &num3, &num4, &num5); printf("%d\n", sum(2, num1, num2)); pri..
[C] 코딩도장 65 : 함수에서 구조체 매개변수 사용하기 65.6 심사문제: 두 점 사이의 거리를 구하는 함수 만들기 #define _CRT_SECURE_NO_WARNINGS #include #include struct Point2D { int x; int y; }; double getDistance(struct Point2D p1, struct Point2D p2) // 각 구조체 변수를 매개변수로 받습니다 { double distance = sqrt(((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y))); return distance; } int main() { struct Point2D p1; struct Point2D p2; scanf("%d %d %d %d", &p1.x, &p1.y, &p2..
[C] 코딩도장 64 : 함수에서 배열 매개변수 사용하기 64.6 심사문제: 배열 매개변수 사용하기 #define _CRT_SECURE_NO_WARNINGS #include void printReverse(int numArr[], int size) // 입력받은 값을 거꾸로 출력해야합니다 { for (int i = size - 1 ; i >= 0 ; i--) // 배열 요소의 개수만큼 반복해서 거꾸로 출력해줍니다 { printf("%d ", numArr[i]); } } int main() { int numArr[10]; scanf("%d %d %d %d %d %d %d %d %d %d", &numArr[0], &numArr[1], &numArr[2], &numArr[3], &numArr[4], &numArr[5], &numArr[6], &numArr[7], &..
[C] 코딩도장 63 : 함수에서 포인터 매개변수 사용하기 63.9 심사문제: 몫과 나머지를 구하는 함수 만들기 #define _CRT_SECURE_NO_WARNINGS #include int getQuotientAndRemainder(int num1, int num2, int*remainder) // 나머지의 주소값을 입력 받으니 int 포인터형으로 매개변수를 선언합니다 { int quotient = num1 / num2; *remainder = num1 % num2; // 포인터를 역참조하여 remainder 값을 넣어줍니다 return quotient; // quotient에 반환값이 들어가므로 return 값으로 quotient를 넣어줘야 합니다 } int main() { int num1; int num2; int quotient; // 몫 int rem..
[C] 코딩도장 62 : 함수에서 매개변수 사용하기 62.7 심사문제: 게임 캐릭터 능력치 설정 함수 만들기 #include void setAttackSpeed(float a) // 리턴 값이 없어야 해서 void형 함수를 선언하여 출력한다. { printf("Attack Speed: %f\n", a); } int main() { setAttackSpeed(0.638f); setAttackSpeed(1.23f); return 0; } 62.8 심사문제: 덧셈 함수 만들기 #define _CRT_SECURE_NO_WARNINGS #include long long add(long long num1, long long num2) // 입력값과 반환값 모두 long long 형이어야 함 { return num1 + num2; } int main() { long ..
[C] 코딩도장 61 : 함수에서 반환값 사용하기 61.10 심사문제: 게임 캐릭터 능력치 함수 만들기 #include #include float getArmor() { return 20.5f; // 20.500000를 리턴 } bool hasSlowSkill() { return false; // bool값을 리턴 } int main() { float armor; bool slow; armor = getArmor(); slow = hasSlowSkill(); printf("%f\n", armor); // armor printf("%s\n", slow == true ? "true" : "false"); // false return 0; } 61.11 심사문제: 문자열 포인터 반환하기 #define _CRT_SECURE_NO_WARNINGS #include..