C++

[강의] 8월 29일 수업정리

k-codestudy 2024. 8. 29. 20:37

예제를 통해 if문과 반복문을 연습함

 

예제1. 모든 약수의 갯수를 출력하는 프로그램

( 1보다 큰 정수를 입력받아 그 수의 약수 개수를 출력하라.)

#include <iostream>

int main()
{
	int nNumber{ 1 };
	int nInput{};
	int nRemainder{};
	int nMeasureCount{};

	scanf_s("%d", &nInput);

	while (nNumber <= nInput)
	{
		nRemainder = nInput % nNumber;
		if (nRemainder == 0)
			nMeasureCount++;

		nNumber++;
	}

	printf("약수의 갯수 : %d", nMeasureCount);
}
  • nNumber, nInput, nRemainder, nMeasureCount라는 정수형 변수를 생성, nNumber는 1로 고정
  • scanf_s를 이용하여 nInput에 입력한 값을 저장
  • while문을 사용하여 nNumber가 nInput 보다 작거나 같을 때까지 반복한다.
  • nRemainder에 nInput에서 nNumber를 나눈값을 저장
  • if문을 사용하여 nRemainder == 0 이라면 nMeasuerCount를 1증가시킨다 ( 즉, 약수를 찾는다 )
  • nNumber를 1증가시키고 반복 
  • prtinf로 nMeasuerCount값을 출력 ( 최종적으로 약수의 개수를 출력)

 

예제2. 소수점 20자리까지 출력하는 프로그램

( 1보다 큰 두 개의 정수를 입력받아 소수점 20자리까지 출력하라. )

 

#include <iostream>

int main()
{
	int nNumber{};
	int nInput1{};
	int nInput2{};
	int nQuotient{};
	int nRemainder{};

	scanf_s("%d", &nInput1);
	scanf_s("%d", &nInput2);

	while (nNumber < 20)
	{
		nQuotient = nInput1 / nInput2;
		nRemainder = nInput1 % nInput2;

		printf("%d\n", nQuotient);

		nInput1 = nRemainder * 10;
		nNumber++;
	}
}
  • 정수형 변수 nNumber, nInput1, nInput2,  nQuotient, nRemainder 를 생성
  • scanf_s를 이용하여 nInput1, nInput2에 입력한 값을 저장
  • while문을 사용하여 nNumber부터 20보다 작을 때까지 반복
  • nQutient에 nInput1에서 nInput2를 나눠 몫을 nRemainder에 나머지를 저장
  • printf를 사용하여 nQuotient값을 출력 (소수점 표현을 위해서)
  • nInput1에 nRemainder * 10한 값을 저장
  • nNumber를 1 증가시킨후 반복 

 

추가 설명

  • 기본 개념:
    • C언어는 0부터 카운팅을 시작한다.
    • 반복문에서는 반복 횟수가 중요하며, 내부 로직의 처리 결과가 아닌 전체 반복 횟수를 잘 조정해야 한다.
    • while문 안에서 조건문에 사용된 변수는 그 블록 내에서만 그 임무를 수행하며, 다른 곳에서 사용하면 안 된다.
  • 리팩토링:
    • 결과의 변경 없이 코드 구조를 개선하는 과정이다. 단순히 이름을 바꾸는 정도는 리팩토링으로 보지 않는다.

'C++' 카테고리의 다른 글

[강의] 9월 3일 수업정리  (1) 2024.09.04
[강의] 8월 30일 수업정리  (0) 2024.08.30
[강의] 8월 28일 수업정리  (1) 2024.08.28
[강의] 8월 27일 수업정리  (0) 2024.08.27
[강의] 8월 23일 수업정리  (1) 2024.08.23