본문 바로가기

About Programing/02. 준비운동

C언어의 간단한 예제를 설계부터 코드화까지 (4/9)

[문제 4/9]
1-100 까지의 홀수 합을 구하시오.(단, 3의 배수와 5의 배수 제외)

1. System chart

2. 수작업의 이해

숫자

1

2

3

4

5

6

7

홀수판단

×

×

×

3의 배수가 아닌가

×

×

5의 배수가 아닌가

×

1

1

1

1

1

1

8

3. 처리 과정

1. 100번 반복한다.
   1.1 수를 센다.
   1.2 홀수인지 판단한다.
        1.2.1 3의 배수인지 판단한다.
        1.2.2 5의 배수인지 판단한다.
        1.2.3 합을 구한다.
2. 합을 출력한다.
3. 끝낸다.

4. 자료명세서

number

입력받을 숫자

정수형

plus

양수 count

정수형

odd

음수 count

정수형

even

짝수 count

정수형

minus

홀수 count

정수형

remainder

나머지

정수형

i

반복제어변수

정수형


5. NS-Chart

6. NS-Chart 검토표

 

초기

 

 

 

 

 

 

 

 

number

?

1

2

3

4

5

6

7

sum_odd

0

1

 

 

 

 

 

8

tree_remainder

?

1

 

0

 

2

 

1

five_remainder

?

1

 

3

 

0

 

2

remainder

?

1

0

1

0

1

0

1

i

?

1

2

3

4

5

6

7


7. 소스화


#include <stdio.h>

#define MAX 100

typedef unsigned short UShort;

UShort	GetSumOdd	(void);
void	Display		(UShort sum_odd);

int main (int argc, char *argv[])
{
	UShort sum_odd;
	sum_odd = GetSumOdd ( );

	Display (sum_odd);

	return 0;
}

UShort GetSumOdd (void)
{
	UShort sum_odd = 0;
	UShort number, tree_remainder, five_remainder, remainder, i;

	for(i=1 ; i <= MAX ; i++)
	{
		number		= i;
		remainder	= number % 2;

		if(remainder==1)
		{
			tree_remainder = number % 3;
			five_remainder = number % 5;

			if(tree_remainder != 0 && five_remainder != 0)
			{
				sum_odd += number;
			}
		}
	}

	return sum_odd;
}

void Display (UShort sum_odd)
{
	printf ("%d\n", sum_odd);
}


8. 결과