반복문(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;
}