반복문(while, do while)질문. 고수님들 도와주세요.

사용자로부터 정수를 입력받아서
1부터 N까지 합은 For문으로
1부터 N까지 홀수 합은 While문
1부터 N까지 짝수 합은 do while문으로 푸는 문제입니다.

do while문으로 짝수값을 구하기가 힘드네요ㅠ 도와주세요.

짝수는 0에서 +2씩 커지면짝수일테고
홀수는 1에서 +2씩 커지면 홀수임을 이용하여 작성해봤는데요
초짜라 변수도 많고 프로그램도 많이 지저분한데 좀더 간편하게 짤수 있을까요?

#includestdio.h
int main(void)
{
int i, N, cnt; // cnt는 홀수 짝수값을 구할때 루프횟수를 저장하는 변수
int All = 0; // N 까지의 합을 저장하는 변수
int Odd = 0; // 1부터 N까지의 홀수 합을 저장하는 변수
int Even = 0; // 1부터 N까지의 짝수 합을 저장하는 변수
int D; // 짝수, 홀수의 공차값 2를 계속 누적하는 변수

printf(정수를 입력하세요 : );
scanf(%d , &N);

// N 까지의 합 (for 문 이용)
for(i=1; i=N; i++)
{
All += i;
}
printf(1부터 N까지의 합 = %d\n, All);

// 1부터 N까지의 홀수의 합 (while 문 이용)

if(N % 2 == 0)
cnt = N/2;
else
cnt = (N/2)+1;
i=1, D=1;
while(i=cnt)
{
Odd += D;
D++;
D++;
i++;
}
printf(1부터 N까지의 홀수 합 = %d\n, Odd);

// 1부터 N까지의 짝수의 합 (do while 문 이용)
if(N % 2 == 0)
cnt = N/2;
else
cnt = (N/2)+1;

i=1, D=0;
do
{
Even += D;
D++;
D++;
i++;
}
while(i=cnt);

printf(1부터 N까지의 짝수 합 = %d\n, Even);
return 0;
}

C언어 다른 글

목록