
3의 배수와 5의 배수 중 어떤 수가 더 많은지 알아보기
main 함수 / 설명
int main() {
int arr[10] = {2, 3, 6, 9, 12, 15, 10, 20, 22, 25};
int arr_len = 10;
char* ret = solution(arr, arr_len);
printf("solution 함수의 반환 값은 %s 입니다.\n", ret);
}
- 길이가 10인 arr의 배열에 숫자 10개 할당
- arr_len을 10으로 할당
- 캐릭터형 변수 ret에 arr, arr_len을 매개변수로 갖는 solution 함수 할당
func_a 함수 / 설명
int func_a(int arr[], int arr_len){
int count = 0;
for(int i = 0; i < arr_len; ++i)
if (arr[i] % 5 == 0)
count += 1;
return count;
}
- arr과 arr_len을 매개변수로 받는 func_a 함수
- 5의 배수를 count할 변수를 0으로 초기화
- arr_len의 길이만큼 arr[i]번째들이 5의 배수인지 아닌지 판단 반복
- 만약 5의 배수이면 count++;
- count 반환
func_b 함수 / 설명
문자형 함수 : 문자형 함수는 문자 데이터를 매개 변수로 받아들여서 문자나 숫자 값의 결과를 돌려주는 함수
char* func_b(int three, int five){
if (three > five)
return "three";
else if (three < five)
return "five";
else
return "same";
}
- three, five 정수형을 매개변수로 받는 문자형 func_b 함수
- 만약 3의 배수가 더 많다면 three 반환
- 만약 5의 배수가 더 많다면 five 반환
- 아무것도 아니라면 same 반환
func_c 함수 / 설명
int func_c(int arr[], int arr_len){
int count = 0;
for(int i = 0; i < arr_len; ++i)
if (arr[i] % 3 == 0)
count += 1;
return count;
}
- arr과 arr_len을 매개변수로 받는 func_c 함수
- 3의 배수를 count할 변수를 0으로 초기화
- arr_len의 길이만큼 arr[i]번째들이 3의 배수인지 아닌지 판단 반복
- 만약 3의 배수이면 count++;
- count 반환
solution 함수 / 설명
char* solution(int arr[], int arr_len) {
int count_three = func_();
int count_five = func_();
char* answer = func_();
return answer;
}
- arr과 arr_len을 매개변수로 받는 문자형 함수 solution
- count_three에 3의 배수를 세는 func_c 함수 할당
- count_five에 5의 배수를 세는 func_a 함수 할당
- answer에 더 많은 배수를 세는 func_b 함수에 count_three, count_five 매개변수로 넘기기
solution 완성
char* solution(int arr[], int arr_len) {
int count_three = func_c(arr, arr_len);
int count_five = func_a(arr, arr_len);
char* answer = func_b(count_three, count_five);
return answer;
}
전체 코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int func_a(int arr[], int arr_len){
int count = 0;
for(int i = 0; i < arr_len; ++i)
if (arr[i] % 5 == 0)
count += 1;
return count;
}
char* func_b(int three, int five){
if (three > five)
return "three";
else if (three < five)
return "five";
else
return "same";
}
int func_c(int arr[], int arr_len){
int count = 0;
for(int i = 0; i < arr_len; ++i)
if (arr[i] % 3 == 0)
count += 1;
return count;
}
char* solution(int arr[], int arr_len) {
int count_three = func_c(arr, arr_len);
int count_five = func_a(arr, arr_len);
char* answer = func_b(count_three, count_five);
return answer;
}
int main() {
int arr[10] = {2, 3, 6, 9, 12, 15, 10, 20, 22, 25};
int arr_len = 10;
char* ret = solution(arr, arr_len);
printf("solution 함수의 반환 값은 %s 입니다.\n", ret);
}
실행 결과
