66.6 심사문제: 가변 인자의 합 구하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdarg.h>
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));
printf("%d\n", sum(3, num3, num4, num5));
return 0;
}
66.7 심사문제: 가변 인자의 정수 합 구하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdarg.h>
int getSum(char *args, ...)
{
int result = 0;
int i = 0;
va_list ap;
va_start(ap, args);
while (args[i] != '\0')
{
switch (args[i])
{
case 'i': // 정수의 합을 구하므로 'i'일 때만 결과값에 더해줍니다
result += va_arg(ap, int);
break;
case 'd':
va_arg(ap, double);
break;
case 's':
va_arg(ap, char*);
break;
default:
break;
}
i++;
}
va_end(ap);
return result;
}
int main()
{
int num1, num2, num3;
scanf("%d %d %d", &num1, &num2, &num3);
printf("%d\n", getSum("isi", num1, "C", 10));
printf("%d\n", getSum("sdsi", "Hello, world!", 5.3, "A", num2));
printf("%d\n", getSum("iiss", 25, 38, "k", "R"));
printf("%d\n", getSum("sidii", "Hello, C", num3, 2.234567, 878, 1291));
return 0;
}
'C_study' 카테고리의 다른 글
[C] 코딩도장 68 : 함수 포인터 사용하기 (0) | 2021.08.15 |
---|---|
[C] 코딩도장 67 : 함수에서 재귀호출 사용하기 (0) | 2021.08.14 |
[C] 코딩도장 65 : 함수에서 구조체 매개변수 사용하기 (0) | 2021.08.11 |
[C] 코딩도장 64 : 함수에서 배열 매개변수 사용하기 (0) | 2021.08.10 |
[C] 코딩도장 63 : 함수에서 포인터 매개변수 사용하기 (0) | 2021.08.07 |