C언어 문제
지정 배수의 합계 구하는 프로그램
문제)
특정 숫자 범위에서 지정 배수의 합계를 구하는 프로그램을 만들어 주세요.
#include <stdio.h> int main(void){ int numStart, numEnd; int numMultiple; int i; int sum; printf("범위의 시작 숫자를 입력하세요 >>> "); fflush(stdout); scanf("%d", &numStart); printf("범위의 끝 숫자를 입력하세요 >>> "); fflush(stdout); fflush(stdin); scanf("%d", &numEnd); printf("합계를 구할 배수를 입력하세요 >>> "); fflush(stdout); fflush(stdin); scanf("%d", &numMultiple); sum = 0; //AND 연산자(&&)를 이용하여 범위를 설정 for(i = numStart; numStart <= i && i <= numEnd; i++){ if (i % numMultiple == 0) sum += i; } printf("%d ~ %d 범위에서 %d 배수의 합계: %d \n", numStart, numEnd, numMultiple, sum); return 0; }
다음은 출력 결과입니다.
범위의 시작 숫자는 1, 끝 숫자는 50으로 설정한 뒤
합계를 구할 배수 7을 입력합니다.
1 ~ 50 범위에서 7배수의 합계는 196으로 출력됩니다.
수를 입력받을 때 fflush(stdout)과 fflush(stdin)을 사용했습니다.
이 차이에 대해 궁금하신 분은 아래의 링크를 확인하시기 바랍니다.
fflush 함수, fflush(stdin)/fflush(stdout) 개념 제대로!
fflush(stdout)으로 출력 버퍼를 비워준 즉시 출력하고,
fflush(stdin)으로 입력 버퍼에 있는 개행문자(\n)를 비워줍니다.
if (i % numMultiple ==0)
→ 합계를 구할 배수를 numMultiple이라는 변수에 저장한 뒤 1~50까지 numMultiple로 나눠줍니다.
numMultiple로 나누어떨어질 때마다 sum에 누적되어 합해집니다.
sum을 출력하면 지정 배수의 합계를 확인할 수 있습니다.
'Code.D IT 프로젝트 > C언어' 카테고리의 다른 글
[C언어 문제] 아스키코드 출력하는 프로그램 (0) | 2017.06.08 |
---|---|
[C언어 문제] 홀수의 합과 짝수의 합 구하기 (0) | 2017.06.07 |
[C언어 문제] 학점(등급)을 출력하는 프로그램 (0) | 2017.06.02 |
[C언어 문제] 구구단 내림차순 출력 (0) | 2017.06.02 |
[C언어 문제] 중첩 for문을 이용한 구구단 출력 (0) | 2017.06.01 |