안녕하세요 지코딩입니다.
오늘은 코딩도장 66.7 심사문제 풀이를 해보겠습니다.
<문제>표준 입력으로 정수 세 개가 입력됩니다. 다음 소스 코드를 완성하여 getSum 함수에 들어간 가변 인자 중에서 정수의 합을 구하도록 만드세요.
자료형 약칭
정수끼리만 합하는 것이므로 'i'일때만 합해주면 되지만 'd'이거나 's'일 때에도 va_arg를 사용해야 다음 인자로 넘어갑니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdarg.h>
int getSum(char *types, ...){
va_list ap;
int i = 0;
int sum = 0;
va_start(ap, types);
while(types[i] != '\0'){
switch(types[i]){
case 'i':
sum+=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 sum;
}
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언어] 코딩도장 71.10 파일을 부분적으로 읽기 문제 풀이 (0) | 2021.07.08 |
---|---|
[c언어] 코딩도장 68.5 반환값과 매개변수가 있는 함수 포인터 만들기 문제풀이 (0) | 2021.07.02 |
[c언어] 코딩도장 67.6 재귀호출로 피보나치 수 구하기 문제풀이 (0) | 2021.06.30 |
[c언어] 코딩도장 64.7 전치행렬 만들기 문제풀이 (0) | 2021.06.26 |
[c언어] 코딩도장 53.6 선의 길이 구하기 문제풀이 (0) | 2021.06.25 |
댓글 영역