C/If

[C] If문과 While문을 활용하여 첫 번째 수와 마지막 수를 입력해서 마지막 수까지 더해서 출력하기 (만약 첫 번째 수가 마지막 수보다 크면 둘이 바껴서 계산)

U__q 2022. 9. 16. 08:28
728x90

문제

첫 번째 수와 마지막 수를 입력해서 첫 번째 수에서 마지막 수까지 커지면서 값을 더해서 출력하기
만약, 첫 번째 수가 마지막 수보다 수가 크면 둘이 반대로 계산되어서 출력하기 (If문•While문 활용)

실행 결과 예시

더하는 시작 수를 입력하시오 : 3
마지막 수를 입력하시오 : 1
6

소스 코드

#include <stdio.h>

int main(void) {
	int st_num = 0;
	int end_num = 0;
	int sum = 0;

	printf("더하는 시작 수를 입력하시오 : ");
	scanf_s("%d", &st_num);
	printf("마지막 수를 입력하시오 : ");
	scanf_s("%d", &end_num);

	int num=0;
	if (st_num > end_num) {
		num = st_num;
		st_num = end_num;
		end_num = num;
	}

	while (st_num <= end_num) {
		sum += st_num++;
	}

	printf("%d", sum);

	return 0;
}

소스 코드 풀이

	int st_num = 0;
	int end_num = 0;
	int sum = 0;

	printf("더하는 시작 수를 입력하시오 : ");
	scanf_s("%d", &st_num);
	printf("마지막 수를 입력하시오 : ");
	scanf_s("%d", &end_num);

시작 수 st_num으로 잡고, 마지막 수 end_num으로 잡아준다.

sum을 포함한 나머지 두 변수도 초기화를 시켜주기 위해서 초기 값을 0으로 잡아준다.

시작 수 마지막 수를 입력받기 위해서 scanf를 사용해준다.

	int num=0;
	if (st_num > end_num) {
		num = st_num;
		st_num = end_num;
		end_num = num;
	}

만약 시작 수가 마지막 수보다 클 때 둘을 바꿔 줘야 하기에 int num을 잡고 값을 초기화 해줘야 하기에 값 0으로 설정해준다.

if문을 사용해서 시작 수가 마지막 수보다 클 때 num을 사용해서 num 값을 시작 수 값으로 바꿔주고, 시작 수의 값 마지막 수 넣어주고, 마지막 수 값 처음에 바꿔준 num 값으로 바꿔준다.

	while (st_num <= end_num) {
		sum += st_num++;
	}
	printf("%d", sum);

시작 수부터 마지막 수까지 수가 커지면서 마지막 수도 더해져야하기에 등호는 <=를 사용해주고, sum st_num++의 값을 더하고 대입해줘야 하기 때문에 sum+=st_num++로 작성해준다.

여기서 사용한 대입 연산자 +=는 두 항의 값을 더해서 왼쪽 항에 대입해준다.

실행 결과

더하는 시작 수를 입력하시오 : 5
마지막 수를 입력하시오 : 1
15
728x90