문제

  1. 1에서 100까지 합을 구하는 순서도를 C로 구현하십시오.
  2. 1부터 100,000까지, 100,000 포함하여 7의 배수가 몇 개 있는지를 구하는 순서도에 대해 C로 구현하십시오.
  3. 수들을 입력받아서 짝수의 개수와 홀수의 개수를 구하는 문제에 대해 C로 구현하십시오.

내가 생각한 답

문제 1번

// 1_sum100.c
// [주석 단락]
/*****************************************************************************
 * 파일  명칭 : 1_sum100.c
 * 기      능 : 1에서 100까지 합하여 총합 출력
 * 함수  명칭 : main
 * 출      력 : 총합
 * 입      력 :
 * 작  성  자 : 채 종 홍
 * 작성  일자 : 2020/01/15
*****************************************************************************/
// [전처리기  단락]
#include <stdio.h>

#define MAX 100
// [함수 선언 단락]
int main(int argc, char* argv[]);

// [함수 정의 단락]
int main(int argc, char* argv[]) {

	int sum = 0;
	int number = 1;
	//1. 숫자가 최댓값보다 작거나 같으면 반복한다.
	while (number <= MAX) {
		//1.2. 총합을 계산한다.
		sum += number;
		//1.1. 숫자를 증가한다.
		number++;
	}
	/*
	for(number=1; number <= MAX; nmuber++){
		sum += number;
		number++;
	}
	*/
	//2. 총합을 출력한다.
	printf("총합 : %d", sum);

	//3. 끝낸다.
	return 0;
}

문제 2번

// 2_multipleSeven.c
// [주석 단락]
/*****************************************************************************
 * 파일  명칭 : 2_multipleSeven.c
 * 기      능 : 7의 배수 개수를 구한다.
 * 함수  명칭 : main
 * 출      력 : 7의 배수 개수  
 * 입      력 :
 * 작  성  자 : 채 종 홍
 * 작성  일자 : 2020/01/15
*****************************************************************************/
// [전처리기  단락]
#include <stdio.h>

#define MAX 100000
#define MULTIPLE 7

// [함수 선언 단락]
int main(int argc, char* argv[]);

// [함수 정의 단락]
int main(int argc, char* argv[]) {

	int count = 0;
	int number = 1;
	int remainder = 0;
	int remainder2 = 0;
	//1. 숫자가 최댓값보다 작거나 같으면 반복한다.
	while (number <= MAX) {
		//1.2. 나머지를 계산한다.
		remainder = number - (number / MULTIPLE) * MULTIPLE;
		//remainder = number % MULTIPLE;
		//1.3. 7의 배수를 판별한다.
		if (remainder == 0) {
			count += 1;
		}
		//1.1. 숫자를 증가한다.
		number++;
	}
	//2. 개수를 출력한다.
	printf("100000 안에 있는 7의 배수 개수 : %d", count);
	//3. 끝낸다.
	return 0;
}

문제 3번

// 3_oddOrEven.c
// [주석 단락]
/*****************************************************************************
 * 파일  명칭 : 3_oddOrEven.c
 * 기      능 : 입력한 숫자의 짝수, 홀수 개수를 구하여 출력
 * 함수  명칭 : main
 * 출      력 : 짝수 개수, 홀수 개수
 * 입      력 : 입력된 숫자
 * 작  성  자 : 채 종 홍
 * 작성  일자 : 2020/01/15
*****************************************************************************/
// [전처리기  단락]
#include <stdio.h>

// [함수 선언 단락]
int main(int argc, char* argv[]);

// [함수 정의 단락]
int main(int argc, char* argv[]) {

	int oddCount = 0;
	int evenCount = 0;
	int inputNumber;
	int number = 1;
	int remainder;

	//1.2. 번호를 입력한다.
	scanf_s("%d", &inputNumber);
	//1. 번호가 입력한 숫자보다 작거나 같으면 반복한다.
	while (number <= inputNumber) {
		//1.3. 나머지를 계산한다.
		remainder = number - (number / 2) * 2;
		//remainder = number % 2;
		//1.3. 짝수와 홀수를 판별한다.
		if (remainder == 0) {
			//1.4. 짝수이면 짝수 개수를 증가한다.
			oddCount += 1;
		}
		else {
			evenCount += 1;
		}
		//1.1. 번호를 증가한다.
		number++;
	}
	//2. 짝수 개수와 홀수 개수를 출력한다.
	printf("짝수 개수 : %d 홀수 개수 : %d", oddCount, evenCount);
	//3. 끝낸다.
	return 0;
}

수정해야될 부분

카페를 돌아다니면서 다른 분들의 코드들을 찾아보니 문제 이해를 잘못했다. 계속 숫자를 입력받으면서 그 숫자가 짝수인지 홀수인지 판별하고 개수를 증가시키면 되었다…. 나는 숫자를 입력받으면 그 숫자 안에 짝수, 홀수 개수가 몇개인지를 판별하는 문제인줄 알았는데 말이다.

아래는 다르게 작성된 요소를 적용한 순서도와 코드이다.

문제 3번 순서도(수정)

p175-3

문제 3번 코드(수정)

// 3_oddOrEven2.c
// [주석 단락]
/*****************************************************************************
 * 파일  명칭 : 3_oddOrEven2.c
 * 기      능 : 입력한 숫자의 짝수, 홀수 개수를 구하여 출력
 * 함수  명칭 : main
 * 출      력 : 짝수 개수, 홀수 개수
 * 입      력 : 입력된 숫자
 * 작  성  자 : 채 종 홍
 * 작성  일자 : 2020/01/15
*****************************************************************************/
// [전처리기  단락]
#include <stdio.h>
#define DIVIDER 2

// [함수 선언 단락]
int main(int argc, char* argv[]);

// [함수 정의 단락]
int main(int argc, char* argv[]) {

	int oddCount = 0;
	int evenCount = 0;
	int inputNumber;
	int remainder;

	//1.1. 숫자를 입력한다.
	scanf_s("%d", &inputNumber);
	//1. 파일의 끝이 아닐 동안 반복한다.
	while (!feof(stdin)) {
		//1.2. 나머지를 계산한다.
		remainder = inputNumber - (inputNumber / DIVIDER) * DIVIDER;
		//remainder = number % 2;
		//1.2. 짝수와 홀수를 판별한다.
		if (remainder == 0) {
			//1.3. 짝수이면 짝수 개수를 증가한다.
			oddCount += 1;
		}
		else {
			//1.4. 홀수이면 홀수 개수를 증가한다.
			evenCount += 1;
		}
		//1.5. 짝수 개수와 홀수 개수를 증가한다.
		printf("짝수 개수 : %d 홀수 개수 : %d", oddCount, evenCount);
		//1.1. 숫자를 다시 입력한다.
		scanf_s("%d", &inputNumber);
	}
	//2. 끝낸다.
	return 0;
}

P.S.

vscode에서 c를 돌리려다보니 설정 삽질을 했다. 문제는 해결이 안됬다는것…ㅜㅜ 나중에 차분히 보면서 해야겠다.