본문 바로가기

분류 전체보기

(46)
[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..
[C] 코딩도장 60 : 함수 사용하기 60.7 심사문제 : 함수 정의하기 #include void printIPAddress() { printf("192.168.10.5\n"); // 함수를 호출하면 다음과 같이 출력한다 } void printHostname() { printf("Jupiter"); } int main() { printIPAddress(); printHostname(); return 0; } 60.8 심사문제 : 함수 선언하기 #include void printName(); // main 함수 아래에 함수가 정의되어 있으므로 미리 선언해주지 않으면 컴파일 오류 발생 void printOrdinal(); int main() { printName(); printOrdinal(); return 0; } void printName(..
[C] 코딩도장 59 : 포인터 연산 사용하기 59.9 심사문제: 포인터 연산으로 메모리 주소 조작하기 #define _CRT_SECURE_NO_WARNINGS #include int main() { short *numPtrA; short *numPtrB; short *numPtrC; scanf("%p", &numPtrA); // F0000000 입력 numPtrB = numPtrA + 3; // 포인터가 short 자료형이므로 2바이트씩 3번 순방향으로 이동 numPtrC = numPtrA + 5; // 5번 순방향으로 이동 printf("%X\n", numPtrB); // F0000006 printf("%X\n", numPtrC); // F000000A return 0; } 59.10 심사문제: 포인터 연산과 역참조 사용하기 #define _CR..